Download presentation
Presentation is loading. Please wait.
Published byValerie Terry Modified over 9 years ago
1
Spring 2015
2
Evolving Lists & Lights On! Caesar Cipher Looks Good!
3
encipher(S, n) Rotates the string S by n characters Example: encipher('AbC', 2) returns 'CdE' encipher('xYz', 4) returns 'bCd' decipher(S) Retrieve the original string from an enciphered version (with unknown rotation)
4
Recursion Rotate character individually Rules: Lower-case → lower-case Upper-case → upper-case Otherwise → unchanged Character checking: 'a' <= c <= 'z' 'A' <= c <= 'Z' Character rotation: using ASCII values
5
ASCII values Useful functions: ord( ' a ' ) returns 97 chr(66) returns ' B ' Example: rotate 'b' by 22 characters: chr(ord('b') + 22) returns 'x' Note: need to take care of wrapping around ABC…XYZ 656667…888990 abc…xyz 979899…120121122
6
Unknown number of rotation → Test 26 cases and pick out the best Techniques: English letter appearance probability (provided!) Scrabble scores (roughly a reverse of the above) Any other heuristics (i.e. rules of thumb) Should work well on large strings
7
Create a list of all possibilities (there are 26) #['Dmc', 'End', 'Foe',...] For each possibility, calculate the sum of the probability of the letters #[0.0766, 0.1943, 0.1802,...] Return the one with the largest sum (using recursion? using for loop?)
8
See class web-site for set-up instruction Goals: Write basic image editing tools At least 3, one from each of the following: ▪ Group 1: negative, gray scale ▪ Group 2: vertical flip, horizontal flip, vertical mirror, horizontal mirror ▪ Group 3: scale, blur, random grid
9
An image is a 2 dimensional list (i.e. list of lists) of pixels Example: pixels = [[pixel, pixel], [pixel, pixel], [pixel, pixel]] Note: An image is a list of rows A row is a list of pixels len(pixels) returns height len(pixels[0]) returns width
10
A pixel is a tuple of 3 colors red, green, blue Color value is from 0 to 255 Example: (255,0,0) is red (100,100,100) is gray (112, 48, 160) is purple List uses [ ], tuple uses ( ) No difference (for now)
11
pixels = [[(255,0,0), (0,255,0)], [(0,0,255), (100,100,100)], [ (0,0,0), (112,48,160)]]
12
The beginning from modifyBase import * label = "Brighten" # change this ordinal = 1 Similarity in roles to problem 1: modify(pic) is similar to evolve(L) setNewPixel is similar to setNewElement In general, modifying setNewPixel is enough, but feel free to do anything else.
13
Group 1 (individual pixel): Negative: new color value = 255 – original value Grayscale (values of red, green & blue are equal) Group 2 (change pixel position): Flip/Mirror horizontally/vertically Group 3 (using multiple pixels): Scale Blur: take an average of surrounding pixels Random Grid: Use random.shuffle(L)
14
Have fun + Good luck
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.