Witam,
Słuchajcie, na zajęcia z maty dostałem zadanie żeby stworzyć system szyfrowania. Muszę wszystko poukładać, stworzyć konkretne działania kodujące. Jeśli jest ktoś tu, kto mógłby przekształcić wszystko co mu podam w program (jako tako wyzwanie jest niezłe), który wszystko przerobiłby jak należy - proszę o info.
System ma działać podobnie do Enigmy. Są słupki literowe. Każdej literze jest przydzielona cyfra, która zależy od tego, który jest obecnie dzień roku, a mianowicie:
Jest np. 104 dzień roku. W przypadku wystąpienia zera w owej liczbie, zamieniane jest ono na cyfrę znajdującą się o jedno miejsce w prawo (lub lewo, jeśli cyfra jest ostatnią w liczbie). Czyli 104 dzień roku będzie oznaczał liczbę 144. Teraz mnożymy pierwsze 2 cyfry i dzielimy przez ostatnią (jeśli owa jest). Wychodzi (1*4):4, czyli 10. Więc zaczynamy liczyć od liczby 10. W przypadku 1-9 stycznia, cyfry zostają takie jakie są.
Następnie, każda kolejna litera będzie zależała od poprzedniej.
Zakodujmy np. ABC.
Poniżej zamieszczam jakieś łatwe słupki. Cyfry przy literach będą zależały od konkretnego ustawienia na dany dzień roku. Oczywiście ja już ułatwię sprawę i niech cyfry będą losowe, nie powtarzające się i stałe.
Dziś jest 26 lutego, który jest 57 dniem roku. 5*7=35. Odliczamy od A (kodujemy ABC) i dodajemy 35 liter, więc zaczynamy kodowanie od K. Do K jest przypisana cyfra 6, więc idziemy w dół o 6 liter. Wychodzi R. A = R. B daje L, do którego jest przypisana cyfra 8. Liczymy 8 w dół i mamy U. AB - RU. Teraz C. Mamy M, któremu przyporządkowaliśmy 21, więc idziemy o 21 w dół. Dostajemy P. Więc kod w dniu dzisiejszym dla ABC to RUP. Jutro będzie już inny.
A A 3
B B 7
C C 4
D D 5
E E 1
F F 9
G G 11
H H 12
I I 15
J J 2
K K 6
L L 8
M M 21
N N 10
O O 13
P P 14
R R 19
S S 20
T T 18
U U 17
W W 14
X X 22
Y Y 23
Z Z 25
No i to jest właśnie mój pomysł. Jeśli ktoś miałby chwilkę, mógłby pomóc i co najważniejsze - wie jak to "zrobić", to byłbym wdzięczny za pomoc xP. Program opierałby się na podstawowych i umownych działaniach matematycznych, ale jest ich dość dużo, więc nie wiem jak mi to wyjdzie. Oczywiście mogę pokazać ten sposób "na sucho", ale jakby był programik, to wykładowca byłby zadowolony. Z góry wielkie dzięki.
Ostatnio edytowany przez Korektor - 26-02-2008 o 18:02.
|