Kurzusok
/
Julia
Julia
/
Feladatok
/
Rotációs rejtjel
Rotációs rejtjel

Rotációs rejtjel

Könnyű

Utasítások

Készítsd el a rotációs rejtjel megvalósítását, amelyet néha Caesar-rejtjelnek is neveznek.

A Caesar-rejtjel egy egyszerű eltolásos rejtjel, amely az ábécé összes betűjét egy 0 és 26 közötti egész kulcs segítségével tolja el. Ha 0 vagy 26 a kulcs, a moduláris aritmetika miatt mindig ugyanazt kapod eredményül. A betűt annyival toljuk el, amennyi a kulcs értéke.

A rotációs rejtjelek általános jelölése a ROT + <key>. A leggyakrabban használt rotációs rejtjel a ROT13.

A ROT13 a latin ábécén a következőképpen néz ki:

Plain:  abcdefghijklmnopqrstuvwxyz
Cipher: nopqrstuvwxyzabcdefghijklm

Erősebb, mint az Atbash-rejtjel, mert 27 lehetséges kulcsa van, amelyek közül 25 használható.

A rejtjelezett szöveget ugyanolyan formázással írjuk ki, mint a bemenetet, a szóközöket és az írásjeleket is beleértve.

Példák

  • ROT5: az omg eredménye trl
  • ROT0: a c eredménye c
  • ROT26: a Cool eredménye Cool
  • ROT13: a The quick brown fox jumps over the lazy dog. eredménye Gur dhvpx oebja sbk whzcf bire gur ynml qbt.
  • ROT13: a Gur dhvpx oebja sbk whzcf bire gur ynml qbt. eredménye The quick brown fox jumps over the lazy dog.

Ez egy jó feladat arra, hogy kísérletezz a nem szabványos stringliterálokkal és a metaprogramozással.

A nem szabványos stringliterálok rövid bemutatását ebben a blogbejegyzésben találod. A metaprogramozás részletes útmutatója a kézikönyvben olvasható.

A megoldásodat kibővítheted az alábbiakban leírt funkcionalitás hozzáadásával.

Az A bónuszhoz elég a blogbejegyzésben bemutatott alapvető ismeret. A B bónuszhoz már lényegesen több tudás kell a Julia metaprogramozásából.

A bónusz

Valósíts meg egy stringliterált, amely ROT13-ként működik a stringen:

R13"abcdefghijklmnopqrstuvwxyz" == "nopqrstuvwxyzabcdefghijklm"

B bónusz

Valósítsd meg az R<i> stringliterálokat (i = 0, ..., 26), amelyek i értékkel eltolják a stringet:

R0"Hello, World!" == "Hello, World!"
R4"Testing 1 2 3 testing" == "Xiwxmrk 1 2 3 xiwxmrk"
R13"abcdefghijklmnopqrstuvwxyz" == "nopqrstuvwxyzabcdefghijklm"

Forrás

WikipediaA hivatkozás új ablakban vagy lapon nyílik meg
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Julia Exercism

Készen állsz elkezdeni a(z) Rotációs rejtjel feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Julia nyelvet 35 fogalom128 feladat segítségével, valódi emberi mentorálással, mindez ingyen.