dejmien Temat założony przez niniejszego użytkownika |
» 2013-12-15 22:21:53 Sprawdzałem na kilku przykładach i na jednych się zgadza na drugich nie. A drugi problem jest taki że nie da się wyciągnąć reszty z dzielenia mniejszej liczby przez większą. |
|
pekfos |
» 2013-12-16 14:41:38 Nie wymyślaj problemów. Podaj kod i te przypadki. |
|
dejmien Temat założony przez niniejszego użytkownika |
» 2013-12-16 21:27:10 Ok no dobra, mamy bazę znaków : "abcdefghijklmnoprstuwz123456789"
Chcemy zaszyfrować znak ,,e'' który jest na pozycji 4. Losujemy mu liczbę np. 30. 30+4 =34, teraz bierzemy resztę z dzielenia. 30%34 i benc nie da się z tego wyciągnąć reszty...
Ale zobaczmy czy wyjdzie jeśli liczba nie przekroczy ilości znaków w bazie. Dla ,,e'' losujemy 10. 10+4=14, 30%14= 2, liczbę 2 odpowiada ,,c'' i to jest szyfr. Dobra teraz trzeba odszyfrować, mamy c które jest na pozycji 2. 30%2=0; a 0 odpowiada ,aa'' czyli źle. |
|
pekfos |
» 2013-12-17 14:00:11 30%34 i benc nie da się z tego wyciągnąć reszty... |
E? Jak mówiłem, nie wymyślaj problemów. for( int a = 0; a < 100; ++a ) std::cout << a << '\t' << a % 31 << std::endl; Benc. mamy c które jest na pozycji 2. 30%2=0; a 0 odpowiada ,aa'' czyli źle. |
No oczywiście, że źle. Skąd ty wziąłeś te %2..? |
|
dejmien Temat założony przez niniejszego użytkownika |
» 2013-12-17 17:38:31 Nie mogę zrozumieć co tam pętla ma wspólnego z moim programem. Ok wypisuje mi liczby nie większe niż 30 tak więc jest ok. Ale do czego mogę to wykorzystać? Teraz to ja nie wiem czy my się nie rozumiemy, czy ja nie mogę tego zajarzyć. No bo przy szyfrowaniu dodam te liczby, które odpowiadają pozycji danego znaku do liczby wylosowanej i teraz co mam zrobić z tą pętlą?
Te ,2' wzięło się stąd, że ,c' jest na pozycji 2.
Jak możesz to podaj mi krótki przykład zaszyfrowania jednego znaku...
|
|
pekfos |
» 2013-12-17 17:50:13 Nie mogę zrozumieć co tam pętla ma wspólnego z moim programem. |
Z programem nic. Z Twoją niewiedzą już więcej. Te ,2' wzięło się stąd, że ,c' jest na pozycji 2. |
I jaki w tym sens? Jak możesz to podaj mi krótki przykład zaszyfrowania jednego znaku... |
Prosz.. zaszyfrowany =( indeks + przesuniecie ) % rozmiar_tablicy;
Czy to było takie trudne? To samo robisz, gdy ograniczasz przedział losowych wartości z rand(). Podstawowy przykład z kursu. |
|
dejmien Temat założony przez niniejszego użytkownika |
» 2013-12-17 18:35:14 Z programem nic. Z Twoją niewiedzą już więcej. ,,Errare humanum est" :-P
Ok no dobra sprawdźmy czy to działa: mamy znak d który jest na pozycji 3.
Używam Twojego wzoru:
Wylosowano liczbę 30.
zaszyfrowane = ( 3 + 30)%31 = 2; // na pozycji 2 znajduje się ,,c'' i to jest ten szyfr //
ok wszystko super tylko teraz jak to odszyfrować? |
|
pekfos |
» 2013-12-17 18:40:13 ,,Errare humanum est" :-P |
Nie dokończyłeś. Dalej jest "in errore perservare stultum" i ta część tu bardziej pasuje ;) ok wszystko super tylko teraz jak to odszyfrować? |
Odejmuj? |
|
1 « 2 » 3 |