- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
Шифър на Цезар
- Краен срок
- 01.12.2012 14:00
Срокът за предаване на решения е отминал
Шифърът на Цезар е един от най-простите алгоритми за криптиране. При него всяка буква се замества с друга буква, като еднаквите букви се заместват с еднакви, т.е. навсякъде „а“ е заместено с „ф“, „б“ с „х“ и т.н. Класическата реализация на шифъра се прави чрез „завъртане“ на буквите от азбуката, напр. при завъртане с две позиции в българската азбука ще имаме следните съответствия: „а“ - „в“, „б“ - „г“, „в“ - „д“ и т.н. Дешифрирането се осъществява чрез „завъртане“ в обратната посока.
Напишете клас Caesar
, който да имплементира шифъра на Цезар за
произволни азбуки.
Конструктурът му трябва да приема един задължителен аргумент -
броят букви, с които „завъртаме“, и един незадължителен низ, който да
съдържа всички букви от някаква азбука. Ако низът не бъде подаден, то
азбуката по подразбиране се състои от малките латински букви
'abcdefghijklmnopqrstuvwxyz'
:
latin_encrypter = Caesar.new 4
dna_encrypter = Caesar.new 3, 'ACTG'
Ако числото за завъртане надвишава дължината на азбуката, го завъртаме
на (числото mod дължина на азбуката)
, т.е.
Caesar.new 4
трябва да се държи както Caesar.new 30
.
Инстанциите на класа трябва да имат два метода - encrypt
и decrypt
,
които да извърщват съответните действия:
latin_encrypter.encrypt 'hello' # "lipps"
latin_encrypter.decrypt 'lipps' # "hello"
dna_encrypter.encrypt 'ACCTGA' # "GAACTG"
Примете, че получавате само валидни параметри, т.е. няма да ви караме да криптирате/декриптирате низове съдържащи букви, които ги няма в предварително зададената азбука. Всеки символ се счита за буква, включително интервали, пунктуация и прочее.
Решения
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)