[음악 연주] ZAMYLA CHAN :하자의 구현 Vigenere, 조금 더 카이사르보다 암호를 고정합니다. 일반 텍스트를 사용 cipher 화된다 대신 정수 문자열입니다. 각 알파벳 문자 일반 텍스트로 이동합니다 키워드를 문자입니다. 이 예에서, 키워드 ohai, O 14의 변화에​​ 대응, H는에 7의 변화,의, 변화를 0; 그리고 8의 변화. 당신이 성공적으로 구현 한 경우 시저 암호는, 그것은 좋을 것이다 프레임 워크 어떤에서 당신 Vigenere을 구현할 수 있습니다. 당신이 볼 수 있듯이, Vigenere을 실행 와 같은 단일 문자 암호 키워드는 같은 것입니다 시저 암호로. 동일한 단계 Vigenere 적용 그들은 시저에서했던 것처럼. 키워드는 두 번째 명령 줄입니다 인수, 그래서 당신은 argv1으로 액세스 할 수 있습니다. 그럼 당신은 확인해야하는 키 단어는 참으로 모든 알파벳입니다. 여기에 알파 곳입니다 편리하게 올 수 있습니다. 당신은 유효한 키워드가있는 경우에, 당신은을 그런 다음 사용자의 강도, 당신은 암호로 바꾸다 할 준비가되었습니다. Vigenere 암호 수식과 비슷합니다 지금은 K 제외한 시저 식에 나타내는 K 첨자 J가됩니다 키워드의 j 번째 편지입니다. 의이 과정을 통해 단계를 보자. 당신에게 메시지를 보낼 필요가 있다고 충돌, 난 당신을 좋아하지만, 당신은하지 않습니다 모두가 알고 싶어요. 그래서 당신과 함께 Vigenere 암호를 사용 키워드 팬더 때문에, 잘, 당신도 팬더를 좋아한다. 첫 번째 문자는, 나는, 이동 될 것입니다 I 후, 15 문자 X를주는 P에 의해, 15 P는 16이기 때문에 알파벳의 편지입니다. 일반 텍스트의 다음 문자입니다 공간 이동되지 않게합니다. 그리고 키워드의 인덱스 변경되지 않습니다. 그런 다음 일반 텍스트의 다음 문자입니다 이동하지 않는만큼 이동 L, 모두에서 일반 텍스트 문자 때문에 이 알파벳의 0 번째 문자입니다. 프로세스를 진행, 계속 키워드 문자가의 때마다 일반 텍스트 문자입니다. 키워드에있는 마지막 문자가되면 도달 키워드를 감싸는와 옆에 일반으로 이동 P 님의 텍스트 문자입니다. X lvne 노. 낭만적. 그래서 문자를 주어진, 어떻게 변환합니까 그 대응에 변화를 암호문? ASCII를 비교하려고 변화하는 값. 어쩌면 당신은 관계를 찾을 수 있습니다 문자와 그 사이 ASCII 수학을 사용하여 알파벳 인덱스입니다. 당신은 하나의 문자를 추가하거나 뺄 수 있습니다 서로 얻을 수 당신이 원하는 결과? 기억이 대문자의 변화 와 소문자는 동일합니다. 그래서 아마도 당신은 두 가지를 확인해야합니다 유사한 수식을 대표하는 변화, 대문자 하나 키워드 문자 하나 소문자 하나. 다음으로, 기억하는 키워드 발전 문자 만있는 경우 일반 텍스트 문자와 즉 보통의 경우 텍스트를 유지해야합니다. 우리에 대한 공식보고 그렇다면 Vigenere의 변화는 두 개의 인덱스가 있습니다 변수 i와 j. 하나는 일반의 위치를​​ 추적 텍스트 및 기타 위치 키워드합니다. 하지만 일반 텍스트 훨씬 길어질 수 있습니다 키워드보다,이 경우에 키워드 인덱스 다시 바꿈 할 필요가 키워드의 시작. 어떻게 당신이해야합니까? 에서 다시 살펴 보자 나머지 연산자. 모듈을 정의하면 나머지입니다 두 숫자를 나눈. 하지만이 실제의 실제의 모듈의 사용? 글쎄, 당신은의 큰 그룹을 말한다 사람, 당신은으로 분할해야 세 그룹. 사람들을 두 그룹으로 분할하는 방법 중 하나 그들을 해제 계산하는 것입니다. 당신은 숫자 그룹 그룹 숫자 1, 2, 3. 첫 번째 사람은 1 말할 것이다 다음 2, 다음 3. 1 말할 것이다 후에 사람 그룹 4 및이 없기 때문에 카운트는 거기에서에 시작합니다. 당신은에 모듈을 사용할 수 있습니다 같은 일을 할. 이번에는 그룹이됩니다 그룹 0, 1, 2가. 첫 번째 사람 수 1 모듈 3, 1입니다. 인 2 모듈 3은 2입니다. 사람 3 모듈 3은 0입니다. 사람 4 모듈 3 그래서 1 제공하고, 그룹 바꿈 할 수 있습니다. 당신은 인덱스와 모듈을 그렇게하는 경우 최대 크기에 해당 인덱스, 결과는 이상 없을 것 즉, 동일한 크기의 것을 당신 로 인덱스를 증가시킬 수 있습니다 당신이 원하는만큼 많은. 그리고 오랫동안 당신은에 의해 인덱스를 모듈로 어떤 수, 당신은 번호를 얻을 수 없습니다 보다 큰. 그래서 우리는 10 명의 대신에 5를 가지고 있고, 그들은 모두 그룹에 할당받을 것이다 숫자 0, 1, 또는 2. 에 포장이을 적용하려고 키워드를 제외하고 대신 정렬 그룹 번호에 사람들은 당신이 원하는 키워드 인덱스 당신이 할 수 있도록 에 적합한 특성을 를 초과하지 않고 이동 문자열의 길이입니다. 그것으로, 당신은이 당신의 Vigenere 암호. 내 이름은 Zamyla이며,이 CS50입니다.