ચાન: માતાનો ધપાવવું દો અમારા Vigenère સાઇફર સાથે રમત. Vigenère સાઇફર છે ખૂબ જ સીઝર માટે સમાન છે, સીઝર સિવાય અમે પસાર અમારા કી તરીકે એક પૂર્ણાંક. Vigenere અમે જઈ રહ્યાં છો શબ્દ માં પસાર કરે છે. તેથી, પાળી જો હું ઈચ્છતો સાઇફર ટેક્સટ આ 50 સીએસ ohai છે, પછી તે અર્થ એ થાય દરેક અક્ષર કે ohai કી તરીકે સેવા આપવા માટે જતા હોય છે, અને હું ઉપર ખસેડવા માટે જઇ રહ્યો છું મારા પાળી માટે કે મુખ્ય શબ્દ સાઇફર ટેક્સટ બનાવે ઘણો મુશ્કેલ ડિકોડ. તે શું અર્થ છે કીવર્ડ દ્વારા પાળી? વેલ, શબ્દ એક સ્ટ્રિંગ છે જ્યાં દરેક અક્ષર અનુલક્ષે કેટલાક પૂર્ણાંક પાળી. તેથી હે 14 કી અનુલક્ષે, 7 એક કી એચ, 0 કી છે, જેથી કંઈપણ બદલી ન હોત, અને પછી હું 8 કી છે. હું સાથે Vigenere એક ચાલી કહો સાદા લખાણ આ CS50 સારી છે, કે ફક્ત આપશે મને એક યથાવત શબ્દમાળા. નોંધ કરો કે આ માટે સમકક્ષ હોય છે શૂન્ય કી સાથે સીઝર ચાલી રહ્યું છે. હકીકતમાં, ચાલી Vigenere કોઈ એક પાત્ર સાથે ચાલી સમકક્ષ હશે તે જ પૂર્ણાંક સાથે સીઝર. બધા હક છે, તેથી, જેથી તેઓ સમાન હું હો ખરેખર ભલામણ છે કે જો તમે તમે ફક્ત તમારા સીઝર નકલ કરી શકો છો તમારા Vigenere કોડમાં કોડ. વસ્તુઓ બદલાશે પરંતુ ઓછામાં ઓછા તમે છે કેટલાક કરોડરજ્જુ કે તમારી સાથે કામ કરી શકો છો. કારણ કે Todos જ અમે માંગો છો કી મેળવવા માટે, સાદા લખાણ, ચિહ્નિત કરો કે સાદા લખાણ, અને પછી તે છાપે. જસ્ટ સીઝર જેવા કી રહ્યું છે બીજા આદેશ વાક્ય તરીકે પસાર કરી દલીલ argv ઇન્ડેક્સ સમાયેલ 1, પરંતુ તે આ સમયે અલગ છે કારણ કે તે મૂળાક્ષર હોવા જ જોઈએ. તેથી, અમે દરેક ઉપર ફરી વળવું જરૂર તે કી માં એક પાત્ર વપરાશકર્તા પસાર, અને ખાતરી કરો કે દરેક અક્ષર આલ્ફાબેટીક છે કે ચાલુ રાખવા માટે ક્રમમાં. એકવાર અમે તે પછી કર્યું અમે વપરાશકર્તા માંથી શબ્દમાળા મેળવવા કરી શકો છો, જેમ આપણે પહેલાં કર્યું હતું. અને હવે, અમે હૃદય આવે Vigenere માટે સમસ્યા, જે ફક્ત સીઝર, કેવી રીતે જેવી છે enciphering પેટર્ન બહાર આકૃતિ અને સમીકરણ, અને ચિહ્નિત કરો સમગ્ર સાદી ભાષા. તેથી, જો તમે કે નોટિસ પડશે Vigenere પાળી માટે સમીકરણ ખૂબ જ સીઝર એક સમાન છે. માત્ર એટલો જ તફાવત છે કે તેના બદલે એક ચલ K ના પહેલાં, હવે K એક સબસ્ક્રિપ્ટ છે, કી jth પત્ર સૂચવે છે. ચાલો એક ઉદાહરણ લઈ જવામાં દો. તમે એક ગુપ્ત પસાર કરવા માગે છે તમારા ક્રસ પર સંદેશ, હું તમને ગમે છે. વેલ, તમારા કી માટે તમે કંઈક કે જે પસંદ કરો તે તમારી ખબર ક્રશ જાણે છે કે તમને ગમે છે, Pandas. બધા હક છે, તેથી અમે કેવી રીતે આ પાળી શકું? વેલ, અમે અમારા સાદી ઇન્ડેક્સ છે. જે પ્રથમ અક્ષર પર છે અને જેથી અમારી કી અનુક્રમણિકા છે જે પી, પ્રથમ છે અમારા પાન્ડા શબ્દ પત્ર. તેથી, પી દ્વારા હું સ્થળાંતર અમને એક્સ આપે છે, પછી અમે સાદી ઇન્ડેક્સ આગળ. આ એક જગ્યા માટે અમને નહીં. હવે, જગ્યા પાત્ર બિન આલ્ફાબેટીક છે, જેથી અર્થ એ થાય કે, તે માત્ર અધિકાર સાઇફર ટેક્સટ પર પરિવહન, આપણે ત્યાં એક જગ્યા મૂકી, અને અમે શું અમારા કી માટે ઇન્ડેક્સ આગળ. તેથી, અમે આ સમયે પી હજુ પણ છો. અમે આગામી પર આગળ અમારા સાદી ભાષા ઇન્ડેક્સ. અને હવે, કારણ કે તે છે એક પત્ર, લોઅરકેસ એલ, અમે તે પાળી અમારા કી આગામી ઇન્ડેક્સ. જે છે, જે એક શૂન્ય છે પાળી કે જેથી માત્ર બની જાય છે અમારા સાઇફર ટેક્સટ માં એલ. પછી, અમે બંને સાદી આગળ, અને કી ઇન્ડેક્સ કારણ કે તે આલ્ફાબેટીક છે. તેથી તો અમે ચાલુ રાખવા ત્યાં સુધી અમે જેવા ઈ મળે છે. બધા હક છે, તેથી જો તમે આ નોટિસ પડશે નિર્દેશ કરે છે કે અમારા કી ઇન્ડેક્સ દ્રષ્ટિએ, અમે અંત સુધી પહોંચી ગયા છો પાંડા શબ્દ છે, તેથી શું થાય છે જ્યારે અમે આગામી મેળવવા સાદી ભાષા આલ્ફાબેટીક પત્ર? વેલ, બધા આવું થાય છે અમે છે શરૂઆતમાં આસપાસ લપેટી, અમારા કી પ્રથમ ઇન્ડેક્સ. તેથી, તો પછી અમે કે પાળી પી દ્વારા વાય અમને n આપે છે. અને પછી, અમે એન્કોડિંગ પૂર્ણ ચાલુ અમારા સાદી એક્સ lvne Noh વિચાર. આ ઉદાહરણ પ્રતિ, હું દર્શાવે છે કે અમે માત્ર અગાઉથી શબ્દ આગામી પત્ર જો સાદા લખાણમાં પાત્ર જેથી isalpha એક પત્ર છે કાર્ય હાથમાં અહીં આવશે. અને, સીઝર તરીકે, અમે કરવા માંગો છો કેસ, isupper અને islower જાળવણી કરે છે. તેથી, આ થોડો ઉમેરો તમારા સ્યુડોકોડનો માં. તેથી અમે કેવી રીતે કી પાળી બહાર આકૃતિ નથી? વેલ, તમે અમારી ચર્ચા યાદ તો સીઝર મૂળાક્ષર સૂચકાંક પર સમસ્યા છે, તે જ છે. જ્યાં એક એક ASCII અનુલક્ષે 65 ની કિંમત પરંતુ 0 ની પાળી, અને પછી છેલ્લો પત્ર મૂળાક્ષરમાં, Z, 25 એક પાળી અનુલક્ષે છે. તમે પાળી કે નોટિસ પડશે સમાન છે કે નહીં પત્ર અપર કેસ અથવા નીચલા કેસ છે. ઠીક છે, તેથી હવે તમે તે ખબર કેવી રીતે બહાર આકૃતિ આંકડાકીય પાળી કે એક પાત્ર અનુલક્ષે અમારા સમીકરણ પાછા જવા દો. કારણ કે અમે બે અલગ અલગ હોય છે અહીં સબસ્ક્રીપ્ટ્સ, હું અને જે, કે હિંટ કે અમે ટ્રેક રાખવા માંગો છો છે બંને સાદી અમારા સ્થિતિ તેમજ કીવર્ડ અમારા સ્થિતિ તરીકે, તેથી તે બે અલગ ચલો છે અમે એક પકડ રાખવા માંગો છો. હવે, આપણા સાદી ભાષા સ્થિતિ દરેક સમય વધારવા માટે ચાલે છે, કે જેથી હોઈ ચાલે છે થોડી વધુ સીધા આગળ સ્થિતિ કીવર્ડ વિરોધ, જે આપણે જાણીએ છીએ આસપાસ લપેટી છે, અને ક્યારેક વધારો, ક્યારેક જ રહે છે. તેથી, અમે કેવી રીતે અમલ કરી શકું કાર્યક્ષમતા આસપાસ લપેટી કિવર્ડ માટે અનુક્રમણિકા? હું બોલ ગણતરી ઉદાહરણ નો ઉપયોગ કરવા જઇ રહ્યો છું. બોલ ગણતરી લોકપ્રિય માર્ગ છે જૂથો માં લોકો વિભાજિત કરવા માટે. કહો હું 5 લોકો હતા અને હું કરવા માંગતો ત્રણ જૂથો માં તેમને વિભાજિત, વેલ પછી હું આ બોલ પર ગણતરી દ્વારા શરૂ કરશે. પ્રથમ વ્યક્તિ કરશે કહે છે કે હું ટીમ માટે નંબર એક છું, આગામી વ્યક્તિ ટીમ નંબર હશે બે, ત્રીજી વ્યક્તિ ટીમ નંબર ત્રણ. હવે, હું માત્ર ત્રણ જૂથો જેથી માંગો છો ચોથી વ્યક્તિ ખરેખર કરશે શરૂઆતમાં શરૂ છે અને કહે છે, વેલ, હું ટીમ નંબર વન છું, અને આગામી વ્યક્તિ ટીમ બે નંબર હશે. અને, ત્યાંથી, તેઓ પછી કરી શકો છો તેમના જૂથોમાં અલગ પાડો. તેથી, હું કેવી રીતે મોડ્યૂલો ઉપયોગ કરી શકે છે મને અમલ કરવા માટે મદદ માટે આ કાર્ય આસપાસ કામળો બંધ ગણતરી? વેલ, પ્રથમ વ્યક્તિ નંબર 1, ફેરફારની 3 અમને 1 આપે છે. 2 મોડ 3 અમને 2 આપે છે, અને 3 મોડ 3 અમને 0 આપે છે. ચોથી વ્યક્તિ, નંબર 4, ફેરફારની 3 અમને 1 આપે છે, અને પછી 5 ફેરફારની 3 અમને 2 આપે છે. તેથી, જો તમે નોંધ્યું છે કે કરશે તેમ છતાં મારી પાસે જે લોકોની સંખ્યા વધે છે, અને ઉપર છે 3, કારણ કે હું 3 modding છું હું હંમેશા નંબરો 0, 1, અને 2 મળે છે. હું 3 કરતાં મોટી વિચાર ક્યારેય. તેથી, જો હું 10 હતી લોકો, પછી તે બધા લોકોને હજુ જૂથો 1, 2, અથવા 0 અંદર હશે. તેથી, હવે આપણે જાણીએ છીએ કે જો આપણે એક જૂથ છે 5 અને અમે 3 દ્વારા તે બધા ફેરફારની, પછી અમે ક્યારેય જઈ રહ્યાં છો જૂથો 0, 1, અથવા 2 વધી. તેથી, અમે ક્યારેય એક જૂથ વિચાર જઈ રહ્યાં છો નંબર છે કે જે 3 અથવા ઉપર બરાબર છે. તેથી, હું પાંચ વધુ ઉમેરો તો પણ લોકો, પછી તેમને બધા હજુ જૂથો સોંપેલ આવશે 0, 1, અથવા 2 કારણ કે હું 3 modding છું. હું ક્યારેય કેપ વધી જાઉં છું. ઠીક છે, તેથી ચાલો જોઈએ કે આપણે કરીએ મોડ્યૂલો મદદથી આ વિચાર આસપાસ લપેટી જૂથ નંબરો અને લાગુ તે Vigenère અમે કરવા માંગો છો જ્યાં મોડ્યૂલો વાપરવા માટે આસપાસ લપેટી કિવર્ડ માટે ઇન્ડેક્સ. પણ અમે incrementing કરી રહ્યાં છો છતાં ઇન્ડેક્સ અમે હંમેશા ખાતરી કરો કે અમે હંમેશા બનાવવા માંગો છો ખૂબ જ શરૂઆત આસપાસ લપેટી ક્યારેય ઓળંગી શબ્દમાળા લંબાઈ. ઠીક છે, તેથી હું તે હોઈ શકે છે ખબર થોડી જબરજસ્ત. ત્યાં ઘણા બધા આ પી સેટ વધુ કરવા માટે છે. તેથી, ખાતરી કરો કે તમે લખી બનાવવા તમારા માટે એક સારા સ્યુડોકોડનો કે તમે સમજો છો અને તે કામ કર્યું નહીં. પ્રયત્ન કરો અને દરેક સંબોધવા એક વાક્ય સ્વતંત્ર બહાર figuring બધા લિટલ પઝલ નાના ટુકડાઓ તે એક સાથે મૂકે તે પહેલાં. ખાતરી કરો કે તમે વિચાર કરી આદેશ વાક્ય માંથી કી અને ખાતરી કરો કે તે આલ્ફાબેટીક છે, વપરાશકર્તા સાદા લખાણ, અને પછી enciphering, તમે ખાતરી કરો કે ખબર કેવી રીતે એક અક્ષર ચિહ્નિત કરો, અને પછી સમગ્ર શબ્દમાળા માટે પ્રગતિ કાર્યો આસપાસ કામળો બધા સાથે. છેલ્લે, જો તમે સાઇફર ટેક્સટ છાપી શકો છો. મારું નામ, એક Zamyla છે અને આ Vigenere હતી.