Thread View: pl.comp.lang.asm
8 messages
8 total messages
Started by zrn
Sun, 04 Jun 2006 12:36
1024 bitowa liczba pierwsza
Author: zrn
Date: Sun, 04 Jun 2006 12:36
Date: Sun, 04 Jun 2006 12:36
7 lines
1291 bytes
1291 bytes
Witam! Do mojego programu (DOS/Windows) potrzebuję wstawki asemblerowej sprawdzającej czy dana 1024 bitowa liczba jest pierwsza. Liczba jest dana w postaci tablicy zer lub jedynek. Z asemblera jestem mniej niż cienki. Proszę o pomoc, wskazówki, namiary itp. zrn.
Re: 1024 bitowa liczba pierwsza
Author: Michał
Date: Sun, 04 Jun 2006 13:00
Date: Sun, 04 Jun 2006 13:00
11 lines
1436 bytes
1436 bytes
zrn wrote: > Witam! > Do mojego programu (DOS/Windows) potrzebuję wstawki asemblerowej > sprawdzającej czy dana 1024 bitowa liczba jest pierwsza. Liczba jest dana Mówisz dowolna liczba od 0 do 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137215? (-; -- Pozdrawiam
Re: 1024 bitowa liczba pierwsza
Author: Bernard
Date: Sun, 04 Jun 2006 13:22
Date: Sun, 04 Jun 2006 13:22
9 lines
1188 bytes
1188 bytes
zrn wrote: > Witam! > Do mojego programu (DOS/Windows) potrzebuję wstawki asemblerowej > sprawdzającej czy dana 1024 bitowa liczba jest pierwsza. Liczba jest dana > w postaci tablicy zer lub jedynek. > Z asemblera jestem mniej niż cienki. > Proszę o pomoc, wskazówki, namiary itp. Wskazówka: skoro "jesteś cienki" - napisz to w innym języku.
Re: 1024 bitowa liczba pierwsza
Author: Bogdan (bogdro)
Date: Sun, 04 Jun 2006 13:22
Date: Sun, 04 Jun 2006 13:22
29 lines
2247 bytes
2247 bytes
zrn napisał(a): > Witam! > Do mojego programu (DOS/Windows) potrzebuję wstawki asemblerowej > sprawdzającej czy dana 1024 bitowa liczba jest pierwsza. Liczba jest dana > w postaci tablicy zer lub jedynek. > Z asemblera jestem mniej niż cienki. > Proszę o pomoc, wskazówki, namiary itp. Na myśl przychodzi mi najprostszy (czyli też najdłuższy) sposób: dzielenie podanej liczby przez wszystkie liczby nieparzyste mniejsze równe od liczba/2 (== liczba >> 1). Jeśli ostatni bit = 0, to wiesz, że liczba dzieli się przez 2, więc pierwsza nie jest. Omówienie operacji wielokrotnej precyzji znajdziesz m.in. w książce Randalla Hyde'a "Art of Assembler", wersja 32-bitowa, http://webster.cs.ucr.edu. Są też inne sposoby. Słyszałem o teście Fermata, ale złożoność problemu nie jest banalna. W końcu to dzięki złożoności takich testów (i faktoryzacji liczb) szyfr RSA żyje jeszcze i ma się dobrze :) Podstawy języka znajdziesz na mojej stronie: http://rudy.mif.pg.gda.pl/~bogdro. -- Pozdrawiam, Bogdan (Linux i FreeDOS) Kurs assemblera x86 (DOS i Linuks): http://rudy.mif.pg.gda.pl/~bogdro Grupy dyskusyjne o asm: pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32 Prawdziwy, bezpieczny komunikator: www.JabberPL.org
Re: 1024 bitowa liczba pierwsza
Author: Stachu 'Dozzie' K.
Date: Sun, 04 Jun 2006 13:33
Date: Sun, 04 Jun 2006 13:33
38 lines
2593 bytes
2593 bytes
On 04.06.2006, Bogdan (bogdro) <bogdan@bogdan.pl> wrote: > zrn napisał(a): >> Witam! >> Do mojego programu (DOS/Windows) potrzebuję wstawki asemblerowej >> sprawdzającej czy dana 1024 bitowa liczba jest pierwsza. Liczba jest dana >> w postaci tablicy zer lub jedynek. >> Z asemblera jestem mniej niż cienki. >> Proszę o pomoc, wskazówki, namiary itp. > > Na myśl przychodzi mi najprostszy (czyli też najdłuższy) sposób: > dzielenie podanej liczby przez wszystkie liczby nieparzyste mniejsze > równe od liczba/2 (== liczba >> 1). > Jeśli ostatni bit = 0, to wiesz, że liczba dzieli się przez 2, więc > pierwsza nie jest. > Omówienie operacji wielokrotnej precyzji znajdziesz m.in. w książce > Randalla Hyde'a "Art of Assembler", wersja 32-bitowa, > http://webster.cs.ucr.edu. > > Są też inne sposoby. Słyszałem o teście Fermata, ale złożoność > problemu nie jest banalna. Test Fermata (Rabina-Millera, znacznie skuteczniejszy, też) to test probabilistyczny. Z zerową szansą uznania liczby pierwszej za złożoną. Niespecjalnie złożony, nawiasem mówiąc. > W końcu to dzięki złożoności takich testów > (i faktoryzacji liczb) szyfr RSA żyje jeszcze i ma się dobrze :) Jakiej znowu złożoności? Ocena pierwszości zadanej liczby to problem klasy P, o czym wiadomo od paru lat. Zdaje się, że to był wykładnik rzędu 10, ale to jest wielomian, a nie coś większego. RSA zresztą nie opiera bezpieczeństwa o trudność stwierdzenia, czy dana liczba jest pierwsza (co jest łatwe), tylko właśnie o trudność rozkładu dużych (specjalnie wybieranych) liczb na czynniki pierwsze. -- Feel free to correct my English Stanislaw Klekot
Re: 1024 bitowa liczba pierwsza
Author: Wiktor S.
Date: Sun, 04 Jun 2006 18:21
Date: Sun, 04 Jun 2006 18:21
18 lines
2105 bytes
2105 bytes
>> Witam! >> Do mojego programu (DOS/Windows) potrzebuję wstawki asemblerowej >> sprawdzającej czy dana 1024 bitowa liczba jest pierwsza. Liczba jest >> dana > > Mówisz dowolna liczba od 0 do > 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137215? > (-; skąd wiesz, czy nie od -89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608 do 89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068607 ? -- Azarien
Re: 1024 bitowa liczba pierwsza
Author: Geo
Date: Sun, 04 Jun 2006 19:32
Date: Sun, 04 Jun 2006 19:32
23 lines
2658 bytes
2658 bytes
Wiktor S. napisał(a): > >> Witam! > >> Do mojego programu (DOS/Windows) potrzebuję wstawki asemblerowej > >> sprawdzającej czy dana 1024 bitowa liczba jest pierwsza. Liczba jest > >> dana > > > > Mówisz dowolna liczba od 0 do > > 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137215? > > (-; > > skąd wiesz, czy nie od > -89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608 > do > 89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068607 > ? > > > -- > Azarien Ponieważ liczba pierwsza jest liczbą NATURALNĄ, a nie całkowitą, zatem nie może być ujemna!
Re: 1024 bitowa liczba pierwsza
Author: zrn
Date: Sun, 04 Jun 2006 19:49
Date: Sun, 04 Jun 2006 19:49
16 lines
1825 bytes
1825 bytes
Użytkownik "zrn" <zr.nowak@neostrada.pl.atoutnij> napisał w wiadomości news:e5uk4t$dfl$1@atlantis.news.tpi.pl... Witam! Do mojego programu (DOS/Windows) potrzebuję wstawki asemblerowej sprawdzającej czy dana 1024 bitowa liczba jest pierwsza. Liczba jest dana w postaci tablicy zer lub jedynek. Z asemblera jestem mniej niż cienki. Proszę o pomoc, wskazówki, namiary itp. zrn. Gwoli wyjaśnienia, chodzi o dowolną liczbę naturalną między 1 a 1024 bitową (same jedynki) daną w postaci łańcucha - zawierającego zera albo jedynki. Sposób sprawdzania czy liczba dzieli się przez liczby nieparzyste do sqrt(n) a nie n/2 jest dobry. Wiem jak to zrobić w innym języku ale właśnie ten fragment musi być w asemblerze. zrn.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads