>> [음악 연주]
>> 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입니다.