Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Cykliczne przesunięcie tablicy znaków.

Ostatnio zmodyfikowano 2013-12-17 19:07
Autor Wiadomość
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ą.
P-99350
pekfos
» 2013-12-16 14:41:38
Nie wymyślaj problemów. Podaj kod i te przypadki.
P-99366
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.
P-99404
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.
C/C++
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..?
P-99427
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...

P-99446
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..
C/C++
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.
P-99449
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ć?
P-99472
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?
P-99473
1 « 2 » 3
Poprzednia strona Strona 2 z 3 Następna strona