Kezdőoldal » Számítástechnika » Programozás » Megállapítani egy számról,...

Megállapítani egy számról, hogy prím-e?

Figyelt kérdés

Sziasztok! Kaptam egy olyan feladatot, hogy meg kell állapítanom egy számról, hogy Prímszám-e.

A kérdésem az lenne, hogy ezt milyen módszerrel csináljam meg? c#-ban dolgozom. Nem kell leírni a programot, elég csak az elvet.

Gondolok ilyenre: átlagszámítás: tömbbe bekéred az adatokat, foreachel kiolvastatod, egy osszegbe osszeadod és elosztod a tömb elemeinek számával.


Remélem tudtok segíteni, köszönöm!



2012. jan. 14. 10:06
1 2
 11/19 iostream ***** válasza:

A 2-3000 számjegyű számok osztása nem olyan vészes. A probléma az, hogy nagyon sok ilyen szám van.

A prímteszteket arra használják, hogy ezt a hatalmas mennyiséget leszűkítsék, és utána "hagyományos" módszerrel esnek neki a megmaradt számoknak.

2012. jan. 14. 11:32
Hasznos számodra ez a válasz?
 12/19 anonim ***** válasza:
Nem is arra gondoltam, hogy egyszeri osztásuk lenne a nagy gond, hanem portosan arra, amit Te írtál, hogy nagyon sokszor kell őket osztani!
2012. jan. 14. 11:47
Hasznos számodra ez a válasz?
 13/19 zsomkovacs ***** válasza:
#9: ez alatt azt értem, hogy jó hardver esetén is van esélye, hogy egy bit véletlenül invertálódjon. Kb. 2^-60, ami kb. 10-18 (egy az egybilliárdhoz). Ami nagyon kicsi. És nem igazán okoz gondot. 200 Miller-Rabin teszt esetén annak az esély, hogy nem prím a prímnek mondott szám, kevesebb, mint 2^-800, ami kb. 10^-540. A tizedesvessző után 539 db 0 áll... Ez azért csak meggyőző, nem?
2012. jan. 14. 11:49
Hasznos számodra ez a válasz?
 14/19 zsomkovacs ***** válasza:
Elírtam: 10^-240, és 239 db 0.
2012. jan. 14. 11:51
Hasznos számodra ez a válasz?
 15/19 anonim ***** válasza:

Kedves _Jessy_ !

Ahogy zsomkovacs írta, 0-nál nagyobb a valószínűsége (még ha nagyon kicsi is), annak hogy egy jó hardver úgymond "téved", ehhez még képest is elhanyagolható annak az esélye, hogy a Miller Rabin teszt hibás eredményt ad.

Szeretjük a determinisztikus matematikailag helyes algoritmusokat, de a számítógép hardver-e nem a matematika szellemi világában létezik, hanem a fizikai valóságba, ahol figyelembe kell venni az elektorfizika, az elektrokémia-i stb hatásokat is.

Igaz hogy matematikailag kifogásolható a Miller Rabin teszt, matematikailag azt mondom osztogasd végig a szám négyzetgyökéig vagy akár a szám mínusz 1-ig, kit érdekel, a turing gép véges lépésszám alatt lefuttatja, helyes. A az Miller R teszt meg mint érdekesség van, de nem tökéletes.

CSAKHOGY nincs tökéletesen biztosan hibátlanul számoló számítógép, nincs turing gép a valóságba, és nem mindegy hogy fél másodperc alatt fut le a program vagy a naprendszer élettartama nem lenne elég rá, kitörölhetem a s...em hogy véges idő alatt lefut csak épp 100 trillió év lenne. Ennyi erővel ne számoljunk semmit számítógéppel mert meg van annak a valószínűsége hogy (elektorfizikai okok miatt) invertálódik egy bit, matematikai értelemben nincs helyes számítógép, csak mérnöki pontossággal. Várhatóan az életbe nemigen fogok tapasztalni ilyen fajta hibát mert olyan ritka, de ez nem számít mert megrögzött matematikus vagyok.

2012. jan. 14. 12:36
Hasznos számodra ez a válasz?
 16/19 _Jessy_ ***** válasza:
Jó kis matematikai vita lett belőle :) Nyilván igazatok van, és nem is kétlem a M-R teszt hasznosságát, viszont a kérdezőnek mégis az osztásos módszert javasolnám, mert valószínűleg ezt várja, aki a feladatot feladta :) Hacsak nem valami vállalati szoftverhez kell, nagy számokhoz, 4 bájtos egészhez elég az osztogatás is :)
2012. jan. 14. 13:49
Hasznos számodra ez a válasz?
 17/19 A kérdező kommentje:
Köszönöm szépen a válaszokat, ez egy programnak csak a kisebb része volt, ezért kértem itt segítséget. A bonyolult részét már megcsináltam. Köszönöm szépen a segítségeket.
2012. jan. 14. 16:44
 18/19 anonim ***** válasza:

Szerintem indítasz egy ciklust

úgy hogy

i:2 től j-1ig

ha nem j=j/2 or j=j/3 or j=j/5 akkor a[m]:=j

valami ilyesminek kellene lennie azt hiszem

2012. jan. 14. 19:30
Hasznos számodra ez a válasz?
 19/19 anonim ***** válasza:
az a egy tömb a többi meg szám típus
2012. jan. 14. 19:31
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!