|
|
|
Hódító / Queosia forum
http://queosia.com
http://hodito.hu
|
|
PC (hardver, szoftver, játékok stb.) Minden, ami számítógép. Kedvenc játékod megbeszélése, segítségkérés hardverügyben stb. |
02-09-2011, 20:11
|
|
Member
|
|
Join Date: Oct 2008
Location: Budapest
Posts: 556
Activity: 0%
Longevity: 85%
|
|
amúgy ért valaki a C++-hoz?
újra előszedtem, és kicsit elszoktam tőle... (mostanában leginkább Javában írogattam) Meggyűlt a bajom a változó kiíratásokkal... ha jól emlékszem volt valami olyasmi, hogy valami("A kenyér ára: %dFt", kenyerar);
A ShowMessage nem képes, csak egy valamit kiírni, a MessageBox meg csak const char-okat akar bevenni, még string-et sem. (most beolvasom egy stringbe az összes változót, stb-it és azt iratom ki ShowMessage-dzsel, de nem igazán elegáns... )
|
02-09-2011, 20:29
|
|
Member
|
|
Join Date: Jan 2007
Location: Hódmezővásárhely
Posts: 1,448
Activity: 0%
Longevity: 94%
|
|
Quote:
Originally Posted by Dew
amúgy ért valaki a C++-hoz?
újra előszedtem, és kicsit elszoktam tőle... (mostanában leginkább Javában írogattam) Meggyűlt a bajom a változó kiíratásokkal... ha jól emlékszem volt valami olyasmi, hogy valami("A kenyér ára: %dFt", kenyerar);
A ShowMessage nem képes, csak egy valamit kiírni, a MessageBox meg csak const char-okat akar bevenni, még string-et sem. (most beolvasom egy stringbe az összes változót, stb-it és azt iratom ki ShowMessage-dzsel, de nem igazán elegáns... )
|
Hát én csak konzolos dolgokat csináltam C++-ban, ott meg elég a cout << valtozo;
Egyébként egy stringből így lehet char*-ot csinálni:
string a = "asdasdasd";
char* b = a.c_str();
asszem...
__________________
Mert ott van az erő, az egyszerű magyarban
Egyenes derékkal, áll minden viharban
BimmBimm (#233333)
Éplista számító
|
02-10-2011, 00:11
|
|
Member
|
|
Join Date: Oct 2008
Location: Budapest
Posts: 556
Activity: 0%
Longevity: 85%
|
|
Quote:
Originally Posted by BimmBimm
Hát én csak konzolos dolgokat csináltam C++-ban, ott meg elég a cout << valtozo;
Egyébként egy stringből így lehet char*-ot csinálni:
string a = "asdasdasd";
char* b = a.c_str();
asszem...
|
nahh majd holnap kipróbálom... Köszi!
|
03-30-2011, 22:35
|
|
Member
|
|
Join Date: Jun 2007
Location: Nyíregyháza
Posts: 2,975
Activity: 0%
Longevity: 92%
|
|
Olyan programot kellett volna írni versenyen, hogy bekérsz egy számot, nevezzük N-nek, [2;14] intervallumban, és kiírja egy állományba az összes N számjegyű prímet, melynek számjegyei balról jobbra nem csökkennek. N=10-re kb 10 perc alatt kell lefutnia. Én a közelébe sem értem az 1 percnek. Valaki ha írna egy ilyen programot, Pascalban, C-ben vagy JAVA-ban megköszönném.
__________________
Redológia (#455305) [1/A] [SZK]
Non omnis moriar (#701164) [3/G]
|
04-01-2011, 00:30
|
|
Member
|
|
Join Date: Jun 2007
Location: Nyíregyháza
Posts: 2,975
Activity: 0%
Longevity: 92%
|
|
Quote:
Originally Posted by Redback
Olyan programot kellett volna írni versenyen, hogy bekérsz egy számot, nevezzük N-nek, [2;14] intervallumban, és kiírja egy állományba az összes N számjegyű prímet, melynek számjegyei balról jobbra nem csökkennek. N=10-re kb 10 perc alatt kell lefutnia. Én a közelébe sem értem az 1 percnek. Valaki ha írna egy ilyen programot, Pascalban, C-ben vagy JAVA-ban megköszönném.
|
Most látom, elírtam. N=10-re kb 1 perc alatt kell lefutni. Sikerült megcsinálni, N=11-re 40 mp alatt fut le. Versenyen miért nem jutott így eszembe?!
__________________
Redológia (#455305) [1/A] [SZK]
Non omnis moriar (#701164) [3/G]
|
04-02-2011, 12:35
|
Member
|
|
Join Date: Mar 2006
Posts: 142
Activity: 0%
Longevity: 99%
|
|
Quote:
Originally Posted by Redback
Most látom, elírtam. N=10-re kb 1 perc alatt kell lefutni. Sikerült megcsinálni, N=11-re 40 mp alatt fut le. Versenyen miért nem jutott így eszembe?!
|
Azt tanultam, hogy Eratoszthenész szitája a leggyorsabb ismert prímszám kereső algoritmus. Ha igazán gyorsat szeretnék írni N=10-re, akkor 10^10-nek a gyökéig előállítanám Eratoszthenész szitájával a prím számokat, majd az így megtalált prím számokkal osztogatnám végig a kérdéses intervallumokat. Ha többmagos a processzor, akkor természetesen több szálra tenném ezt a második lépést. Szerintem ez bőven belefér 1 percbe 10 jegy esetén.
|
04-02-2011, 13:09
|
|
Member
|
|
Join Date: Jun 2007
Location: Nyíregyháza
Posts: 2,975
Activity: 0%
Longevity: 92%
|
|
Quote:
Originally Posted by tulip
Azt tanultam, hogy Eratoszthenész szitája a leggyorsabb ismert prímszám kereső algoritmus. Ha igazán gyorsat szeretnék írni N=10-re, akkor 10^10-nek a gyökéig előállítanám Eratoszthenész szitájával a prím számokat, majd az így megtalált prím számokkal osztogatnám végig a kérdéses intervallumokat. Ha többmagos a processzor, akkor természetesen több szálra tenném ezt a második lépést. Szerintem ez bőven belefér 1 percbe 10 jegy esetén.
|
a pascalban csak 2^32-en méretű lehet egy tömb, ez 4,2 milliárd. 14 számjegyű szám gyökéig bőven több, mint 4,2 milliárd prímszám van, szerintem.
__________________
Redológia (#455305) [1/A] [SZK]
Non omnis moriar (#701164) [3/G]
|
04-02-2011, 13:35
|
Member
|
|
Join Date: Mar 2006
Posts: 142
Activity: 0%
Longevity: 99%
|
|
Quote:
Originally Posted by Redback
a pascalban csak 2^32-en méretű lehet egy tömb, ez 4,2 milliárd. 14 számjegyű szám gyökéig bőven több, mint 4,2 milliárd prímszám van, szerintem.
|
Bocs, csak a 10 jegyűeken gondolkodtam, nem a teljes feladatot, mert csak arra mondtál 1 perces korlátot.
Úgy emlékeztem, hogy pascalban nem is lehetett 2^16-nál nagyobb tömböt definiálni. Helyette megoldható mutatókkal. C++-ban és Java-ban viszont 10 jegyűek gyökéig haladva a számokkal szerintem még belefér, mert az csak 100.000.
A 14 jegyű szám esetén nem gondolkodtam. Ahhoz legfeljebb gyök(10^14)=10 millió adatot kellene a memóriában tárolni. Azt hiszem, ennek inkább már C++-ban esnék neki mutatókkal, az még simán lekezel ennyit.
|
04-02-2011, 14:22
|
|
Member
|
|
Join Date: Jun 2007
Location: Nyíregyháza
Posts: 2,975
Activity: 0%
Longevity: 92%
|
|
köszi azért végül sikerült megcsinálnom
__________________
Redológia (#455305) [1/A] [SZK]
Non omnis moriar (#701164) [3/G]
|
04-06-2011, 16:43
|
Member
|
|
Join Date: Mar 2006
Posts: 142
Activity: 0%
Longevity: 99%
|
|
Quote:
Originally Posted by Redback
köszi azért végül sikerült megcsinálnom
|
Érdekelne, hogy milyen módszerrel oldottad meg, mert én kipróbáltam azt, amit én javasoltam, de úgy már 10 millióig az összes prímszám megkeresése 5 másodpercig tartott, az pedig csak N=7 eset, szóval pillanatnyilag meg sem tudom közelíteni a feladat szerinti N=10 esetet 1 perc alatt. Nem futtattam, de az eredmények alapján kb. 8 óra lenne a futási ideje.
Kitaláltam egy másik módszert, de az túl bonyolult ahhoz, hogy csak úgy hirtelen összedobjam, és nem is biztos elég gyors.
Most olvastam a Fermat-prímtesztet. Ha csak néhány estre nézzük a Fermat-prímteszttel a számokat, akkor a nem prímek jó eséllyel megbuknak és csak a maradékra kell nézzük meg, hogy valóban prímek-e. Majd kipróbálom valamikor, hogy ez segít-e rajta.
Last edited by tulip; 04-06-2011 at 17:04..
|
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
|
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT +1. The time now is 04:40.
|
|
|
|
|
|
|