Kezdőoldal » Számítástechnika » Programozás » Miért hibázik a prímszámkereső...

Miért hibázik a prímszámkereső programom?

Figyelt kérdés

Ez egy program ami egy beírt intervallumon belül kiírja az összes prímszámot .A hiba az az , hogy totál véletlenszerűen nem ír ki bizonyos prímeket . Van úgy mindet megtalálja ,van úgy egyet kihagy másikban az van meg és megint egy másik hiányzik .

A program amúgy nagyon gyors (a maga módján) 2000000-ig 15 másodperc alatt kiszámolja a prímeket .

Hallottam ilyenről ,hogy a natív kódú (ami közvetlenül a processzoron fut) programok ejthetnek számítási hibákat.

A forráskód hibátlan , randomizálás nincs benne szóval a hibát erre tudnám visszavezetni .

Ha valaki tudná mi a gond vagy ötlete is van a megoldásra kérem írja le .



2015. júl. 15. 10:34
1 2 3
 11/25 A kérdező kommentje:
Most már valahogy eltűntek a szaktekintélyek most már mindenki már csak szörnyülködőt játssza . Ha nem ismertem be volna ém ,hogy egy kicsit kusza a kód (bár már itt is láttam rosszabbat 0 beszólással) akkor mindenki kussolt volna és nem érkezett volna válasz . De a legjobb még mindig a 0,3s-os megoldó neki gratulálok :D
2015. júl. 15. 21:15
 12/25 anonim ***** válasza:
100%
Szerintem ezután a kód után vegyél inkább vissza kicsit az arcodból.
2015. júl. 15. 21:22
Hasznos számodra ez a válasz?
 13/25 A kérdező kommentje:

Oké visszavettem . Miért hibázik a prímszámkereső programom?

Kérlek titeket mikor állítotok valamit akkor magyarázzátok meg azt .

2015. júl. 15. 21:27
 14/25 anonim ***** válasza:

Nem beszéljél így rólam, miközben egy normális kódot nem tudsz összerakni. Már nem kell 0,3 sec futásidő, redukáltam 0,1 sec-re... Nesze, itt a kód:

#include <stdio.h>


int main() {

FILE *fp;

char a[2000001];

int i, j, k;


fp = fopen("results","w");

if(!fp) {

printf("i/o hiba.\n");

return 1;

}


for(i = 1;i < 2000001;i++) a[i] = 0;

a[2] = 1, fprintf(fp,"%d\n",2);

for(i = 3;i < 2000001;i += 2)

if(!a[i]) {

a[i] = 1, fprintf(fp,"%d\n",i);

for(j = 1, k = i;j < 2000000/i;j++) k += i, a[k] = 2;

}

fclose(fp);

return 0;

}

2015. júl. 15. 21:29
Hasznos számodra ez a válasz?
 15/25 anonim ***** válasza:
Hoppá, egy dolgot elpötyögtem, egy pill és küldöm a javított változatot.
2015. júl. 15. 21:32
Hasznos számodra ez a válasz?
 16/25 anonim ***** válasza:
Vagy nem is, jó így.
2015. júl. 15. 21:33
Hasznos számodra ez a válasz?
 17/25 anonim ***** válasza:
95%
Eszem ágában sincs kibogarászni a kódodat, egy okádék az egész.
2015. júl. 15. 21:40
Hasznos számodra ez a válasz?
 18/25 A kérdező kommentje:
Köszönöm szépen . Nem hazudtál, úgy látszik a irogatás sok időt elvesz a programomnak megnézem , hogy fajlbaírassal nekem mennyi. Csak a programom még valamiért hibás . Kérem különítsük el a kérdést mind tőlem mind a prímszámkeresésről a problémát meg kéne magyarázni .
2015. júl. 15. 21:44
 19/25 anonim ***** válasza:
Az elgondolása is hibás a programodnak, nem így kell csinálni, vesd el az egészet és kezd elölről. Alkalmazd Arisztotelész szitáját, vagy a Miller-Rabin tesztet, stb.
2015. júl. 15. 21:50
Hasznos számodra ez a válasz?
 20/25 anonim ***** válasza:

Valaki segíthetne nekem is.


Php-ban írtam kódot, olyan 500.000-ig minden rendben, utána megtelik a memóriám. Tud valaki valamit a php memóriakezeléséről?


Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 72 bytes) in /home/qrzy/public_html/Dropbox/www/help/prim.php on line 13


<?php

$max = 600000;

$p = array();


for($i=0;$i<$max;$i++){

array_push($p,$i);

}

unset($p[0]);

unset($p[1]);


foreach($p as $key => $value){

for($i=$key;$i<$max/$key;$i++){

unset($p[$key*$i]);

}

}


/*foreach($p as $key => $value){

print($key);

}*/

?>

2015. júl. 15. 22:11
Hasznos számodra ez a válasz?
1 2 3

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!