-
GAMEPOD.hu
Új hozzászólás Aktív témák
-
cucka
addikt
válasz Forest_roby #1800 üzenetére
elvileg igen, eltérő karakter kódolások miatt lehetnek problémák. oprendszer/fejlesztőkörnyezet/fordító függő a dolog. sokat nem foglalkoztam a témával, parancssoros programnál úgyis mindegy, gui-s alkalmazásnál meg szoktak működni az ékezetes betűk.
-
Drizzt
nagyúr
Sziasztok, elég rég nem írtam ide, de most szeretnék nyáron tanulni, programozásban szeretném magamat továbbképezni. Na lássuk miből élek eddig: Kezdtem Pascallal magamtól, meg egy picit C-t is, aztán BME-n C++, C, Java, Prolog, SML volt eddig. Igazából Windows alatti dolgok érdekelnének a közeljövőben főleg. Van egy elég vaskos könyv C# alatti adatbáziskezelés, vagy valami hasonló címmel ''mesteri szinten''. Namost: ez a könyv milyen? Ha C#-ot még soha nem tanultam, akadhat vele valami gondom, vagy az alapokról épít?
Esetleg logikai és funkcionális programozással milyen irányba lehetne keresgélni, hogyha magasabb szinten érdekelne, vagy modern felhasználhatósága(ebből voltam eddig még csak 4-es életemben a Bme-n, minden más 2,3 )?
Vagy akármi ötlet? Mondjuk lehet egyszerűbb lenne azokat a dolgokat tanulnom, amiből megbuktam...I am having fun staying poor.
-
shev7
veterán
abbol a sorozatbol (C# adatbaziskezeles mesteri szinten) van egy olyan kotet, is, hogy C# mesteri szinten ha sosem foglalkoztal meg C#-pal azzal erdemes kezdeni. Valamint egy VS-t beszerezni
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
Drizzt
nagyúr
Igen, láttam azt is, C# mesteri szinten 21 nap alatt a pontos címe asszem, de gondolom az teljesen az alapokról kezd úgy, hogy nem tételez fel semmilyen más alapvető programozói tudást\tapasztalatot, vagy nem? Sok egyébként az újdonság c++hoz, vagy javahoz képest c#ban?
I am having fun staying poor.
-
shev7
veterán
En alapos java es C tudassal a hatam mogott alltam neki. De mivel nehany alapkoncepcion is valtoztattak, nem talaltam unalmasnak az elejet. (Bar az igaz, hogy a vegre kicsit meguntam)
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
cucka
addikt
-
Forest_roby
őstag
hi!
Van egy nem tul kifinomult, de működő progim primek kiszámolására. Gondoltam gyorsítok rajta egy kicsit, de ellenkező hatást értem el. Minnél nagyobb a prim annál több ciklust spórol meg az uj progi, de mégis egyre lasabb lesz. Mi ennek az oka?
első változat:
#include <stdio.h>
main(){
int a,b;
a = 2;
b = 2;
for(a=2; a <= 100000; a++){
for(b=2; a>=b;b++){
if ( (a%b) > 0) {
if (b==(a/2)) printf(''%d\n'',a);
}
else break;
}
}
getchar();
}
második változat:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
main(){
int a,b;
a = 2;
b = 2;
for(a=2; a <= 1000; a++){
float x = a;
for(b=2; a>=b; b++){
if( (a%b) > 0 ){
if( b >= sqrt(x) & b < (sqrt(x)+1) ) printf(''%d\n'', a);
}else break;
}
}
getchar();
}
ui.: biztos sok helyen máshogy is meglehetett volna írni a progit és még sokat is fogok rajta változtatni, de akkor se értem mért lett olyan lassú!-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D
-
Xpod
addikt
válasz Forest_roby #1810 üzenetére
Úgy tudom, gyököt lasabban tud vonni, mint összehasonlítani.
Most kezdődjék a tánc! - mondta a papagáj és berepült a ventilátorba.
-
Forest_roby
őstag
válasz Forest_roby #1812 üzenetére
ok, észrevettem egy nagy hibát!
a belső ciklusban számolja ki az x gyökét, feleslegesen sokszor, mikor elég lenne egyszer is.
ez lényegesen lassít a dolgon.
ui.: hülye vagyok-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D
-
Xpod
addikt
válasz Forest_roby #1813 üzenetére
Ja még egy rövidítési lehetőség, csak a prímszám feléig ossz, 10ezres szám esetén elég 5-6ezerrel osztani, fölötte nincs értelme.
Most kezdődjék a tánc! - mondta a papagáj és berepült a ventilátorba.
-
Xpod
addikt
Nem elég, mert attól, hogy nem lehet gyököt vonni egy számból attól az még nem prím.
pl.: 24 nem prím, de nincs is gyöke az egész számok halmazán.
Úgy értettem amit írtam, hogy, a felnti példát alapul véve, 24/3=8 tehát elég 8-ig menni a for ciklusnak, addigra minden szóbajöhető osztó kiderül, a többi csak ezeknek a többszörösei.
[Szerkesztve]Most kezdődjék a tánc! - mondta a papagáj és berepült a ventilátorba.
-
shev7
veterán
nem azt mondtam, hogy eleg a gyoket nezni, hanem eleg a gyokeig elmenni. Tehat a te peldadbol kiindulva: 24 gyoke ~ 4.8 tehat eleg 4ig nezni. Addig kiderul minden szobajoheto osztopar.
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
Coyot
őstag
válasz Forest_roby #1810 üzenetére
Esetleg próbáld meg az Eratosztenész szitáját, az elég gyors módszer, ha érdekel bepötyögöm neked.
Má' nem
-
Forest_roby
őstag
Érdekel!
Xpod:
egy számot a gyökéig kell vizsgálni, egy szám legnagyobb 'prím' osztója nem lehet nagyobb mint a szám gyöke, ha a gyökéig nem találsz osztót, akkor prím!
pl: 35. gyöke 5.91. Bár 5,91-nél is van nagyobb prím osztója, 7, de már előtte el tudtuk osztani 5-el. ---> köv.: 35 nem prím
pl2: 37. gyöke: 6,08. 6,08-nál kisebb prímek: 2,3,5 --> egyikkel se osztható, tehát prím!
( azért fontos, hogy az osztó prím legyen, mert ha nem prím, akkor felbontható prímekre és találunk kisebb osztót is! )
[Szerkesztve]-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D
-
Forest_roby
őstag
válasz Forest_roby #1820 üzenetére
''.... egy szám legnagyobb 'prím' osztója nem lehet nagyobb mint....''
javítás:
''.... egy szám legelső 'prím' osztója nem lehet nagyobb mint....''-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D
-
shev7
veterán
válasz Forest_roby #1821 üzenetére
if( (a%b) > 0 ){
if( b >= sqrt(x) & b < (sqrt(x)+1) ) printf(''%d\n'', a);
}else break;
en ezt itt nem teljesen ertem. Megnezed, hogy a maradek nagyobb-e mint nulla. Ha nem akkor break, ez vilagos. De ha nem nulla, akkor hogy gyoknel nagyobb-e. Ez is ok. De itt nem kene kilepni a kiiratas utan? Es akkor a for-ciklusban mindegy, hogy meddig szamolsz b-vel...''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
Forest_roby
őstag
Teljes mértékben igazad van!
Így sokkal gyorsabb. ( csomo cikluslefutást megsporol )
Azt hiszem erre gondoltál:
#include <stdio.h>
/*#include <stdlib.h>*/
#include <math.h>
main(){
int a,b;
a = 2;
b = 2;
for(a=2; a <= 1000000; a++){
float x = a;
float xgyok = sqrt(x);
for(b=2; a>=b; b++){
if( (a%b) > 0 ){
if( b >= xgyok & b < (xgyok+1) ){
printf(''%d\n'', a);
break;
}
}else break;
}
}
getchar();
}-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D
-
shev7
veterán
válasz Forest_roby #1823 üzenetére
pontosan erre gondoltam
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
cucka
addikt
válasz Forest_roby #1823 üzenetére
ide tényleg gyorsabb lenne az erasztotenész szitája nevű módszer. a probléma az, hogy keresed az x-nél kisebb prímeket. felírod 2-től x-ig a számokat. ezután megkeresed az első olyan számot, ami nincs áthúzva, és még nem foglalkoztál vele. (ez első körben a kettes lesz). áthúzod minden második számot a 2-es után (vagyis a 4-est, 6-ost, stb.). ha vége, kezded az elejéről. a következő szám a 3-as, áthúzod minden harmadik számot(6,9,stb). a következő szám az 5-ös (a 4-es már át van húzva, így azzal nem foglalkozunk), és így tovább.
viszonylag egyszerű leprogramozni, szóval hajrá. a végén össze lehet hasonlítani a futási időket, kíváncsi vagyok. -
cucka
addikt
válasz Forest_roby #1826 üzenetére
linux alatt time paranccsal szoktam, windows alatt elvileg tudom, gyakorlatilag nem.
általában egy algoritmusnál nem a futási időt nézik, hanem a műveletigényt, ez független a megvalósítástól, azt ''méri'', hogy n számosságú bemeneti adathalmazra hány iterációt végez az algoritmus. -
Xpod
addikt
válasz Forest_roby #1820 üzenetére
Igaz, erről el is felejtkeztem.
Most kezdődjék a tánc! - mondta a papagáj és berepült a ventilátorba.
-
Asmarat
csendes tag
Sziasztok!
Volna-e valami ötletetek, hogy hol tudnék hozzájutni az 1978-ban megjelent Kernigham és Ritchie által írt ''The C Programming language'' c. könyvhöz. Vagy tudnátok-e ajánlani mást a C nyelvvel kapcsolatban? -
cucka
addikt
válasz Forest_roby #1826 üzenetére
találtam win alá is valami hasonlót, mint a linuxos time. úgy hívják, hogy timeit.exe és a Windows Server 2003 Resource Kit Tools nevű csoda része. sok sikert hozzá, nekem nem sikerült használnom, bár nem is próbálkoztam vele túl sokat. [link]
[Szerkesztve] -
Coyot
őstag
válasz Forest_roby #1820 üzenetére
Naszóval, az Eratoszthenész szita. lényege h egy K korlátig előállítja az összes prímszámot, mégpedig ugy h kilövi az összes prímszám többszöröseit, előről haladva K-ig.
Nem garantálom, h műxik majd, már nem kell tudnom C-be progzani, javaslom értsd meg inkább és progizd le, a működése nagyon egyszerű.
for(i=2;i<=k;i++)
{
a=1;
}
p=2;
/*szita*/
while(p<=k)
{
if(a[p])
{
i=2*p;
while(i<=k)
{
a=0;
i=i+p;
}
p=p+1;
}
/*kiirás*/
for(i=2;i<=k;i++){
if(a) printf(''%d'',i);
}
mod.: kicsit rondábban rakta be mint ahogy vártam, remélem azért érthető.
[Szerkesztve]Má' nem
-
cucka
addikt
jó ez, ha hozzáképzeljük azokat az [ i ] indexeket, amelyeket a fórum engine átalakított
egyébként az előző megoldásnak és ennek is n^2 a műveletigénye, de ez gyorsabbnak tűnik, tekintve hogy a gyökvonás elég lassú művelet.
másrészt emlékeim szerint arra a problémára, hogy adott szám prím-e, nem igazán van villámgyors megoldás. általában a kódolások ezért törhetők annyira nehezen (rsa legalábbis)
[Szerkesztve] -
shev7
veterán
nem. Arra, hogy adott szam prim-e. Eleg gyorsan nagy valoszinuseggel (99%) valaszt tudunk mondani. Az RSAnak szerintem az az alapja, hogy ha van egy szamod, ami ''nagy'' primszamok szorzata, akkor a szorzotenyezok eloallitasa nehez feladat.
(egyebkent most lehet, hogy total hulyeseget mondtam, de majd utananezek, vagy megcafolja valaki )''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
Forest_roby
őstag
Látom lassú volta.
Én is megcsináltam, ma fél 1 -kor fejeztem be.
forrás:
#include <stdio.h>
/*#include <stdlib.h>*/
/*#include <math.h>*/
main(){
int n;
int k;
int lepteto;
int tomb[ 100000 ];
for(n=0;n<(sizeof(tomb)/sizeof(int));n++){
tomb[ n ] = n + 2;
}/* Tomb feltoltese! */
for(n=0;n<((sizeof(tomb)/sizeof(int))/2);n++){
lepteto = tomb[ n ];
k=n;
for(k; tomb[ n ] != 0 & (k+lepteto)<=(sizeof(tomb)/sizeof(int)); k=k+lepteto){
tomb[ k+lepteto ] = 0;
}
}/* kinullazas! Elég a tomb feleig. */
for(n=0;n<(sizeof(tomb)/sizeof(int));n++){
if( tomb[ n ] != 0 ){
printf(''%d\n'',tomb[ n ]);
}
}/* kiiratas! */
getchar();
}-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D
-
Forest_roby
őstag
Bár már nekem is megvan, azért köszi! Tényleg jó ötlet volt.
ui.: a szitában feleslegesen sokszor nullázol ki számokat ( már ha jól értem a progidat ). Elég a tomb feléig keresni a primeket és a többszörökűket kinullázni mert akkor már biztos, hogy a megmaradt számok a tombben primek.-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D
-
Forest_roby
őstag
Lehet, hogy én is hülyeséget írok ide, de innen a prímtényezős felbontás már csak 1 lépés.
1245234634567453451 ---> megnézed, hogy prím -e, ha nem megkeresed az első osztóját, elosztod és vissza az elejére....
megnézed, hogy prím -e, ha nem megkeresed az második osz.........
....
....
és a végére megvan a prímtényezős felbontás. ( meg is csinálom )
\bár ezt csak a gyökös módszerrel lehet csinálni, a szita nem erre jó\
Sztem az RSA nak az a titka, hogy gigantikusan nagy prímeket használnak ( és vagy azok szorzatát ). Persze ezt úgy kell elképzelni, hogy a számjegyek száma milliós nagyságrendű. A long long int elbújhat mellette. : )-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D
-
shev7
veterán
válasz Forest_roby #1839 üzenetére
Meg ahogy azt moricka elkepzeli
Utananeztem, jol emlekeztem. Valasztasz ket nagy prim szamot. A ket prim szorzata lesz a nyilvanos kulcs egyik fele. Ha ezt felbontani primtenyezokre olyan egyszeru lenne, akkor torheto lenne az RSA. Csakhogy: ''No polynomial-time method for factoring large integers on a classical computer has yet been found'' Ha a programodat nekiereszted egy altalam valasztott ket ~100 jegyu prim szorzatanak, es megmondod a primtenyezosfelbontasat, akkor mar jo uton haladsz
Egy erdekes adat a wikipediarol: ''As of 2005, the largest number factored by general-purpose methods was 663 bits long, using state-of-the-art distributed methods. RSA keys are typically 1024–2048 bits long.''
[Szerkesztve]''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
VladimirR
nagyúr
elege zavaro, mikor a [i] tombindexek a ph motor miatt eltunnek, ugyhogy csinaltam egy aprosagot, ami ezt kikuszoboli
lustasagom miatt egyelore csak ie ala irtam meg es csak a [i] tag-eket csereli, de ha van ra igeny megcsinalom bugroka es opera ala esetleg mas kodokkal is
telepitesehez csak le kell tolteni, kicsomagolni, es elinditani az install.bat-ot
hasznalatahoz a mar megirt hozzaszolasablakon jobbklikk es ph kodatalakito menupont
Bovebben: [link] -
shev7
veterán
válasz Forest_roby #1841 üzenetére
Nem nekem van igazam, hanem azoknak, akik az RSA-t kitalaltak
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
Forest_roby
őstag
Az 1024-2048 bit egy kicsit tul nagy. Kitüztem magam elé egy kisebb célt. Megpróbálom a primtényezőire felbontani ezt a számot:
62484751362947029755811 (23bit )
--\ de majd otthon \--
--\\ valszeg nem fog sikerülni, ha nem feltételezem, hogy nem prím \\---=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D
-
cucka
addikt
válasz Forest_roby #1839 üzenetére
shev7 - #1835-ben valóban igazad van
Forest_roby - igen, pont a te általad leírt módszer az, ami túl sok időt vesz igénybe. utánanéztem, arra, hogy megállapítsd, egy n számjegyű szám prím-e, van log(n)^12 körüli műveletigényű algoritmus, ez mondjuk majdnem polinomiálisnak tekinthető. a gond az, hogy prímtényezőkre való bontásnál az összes lehetséges osztót végig kell nézni, ami n számjegy esetén 10^n nagyságrend, tehát exponenciális az algoritmusod.
ja, és az általad leírt 62484751362947029755811 sokkal több, mint 23 bit. nem keverni a bitet a számjeggyel. tessék utánanézni a kettes számrendszernek
[Szerkesztve] -
cucka
addikt
válasz Forest_roby #1846 üzenetére
nem véletlenül mondtam, hogy nézz utána a kettes számrendszernek, számábrázolásnak, satöbbi
10es számrendszerben 23 számjegyen ábrázolod.
2es számrendszerben x ''számjegyen'', amit más néven bitnek hívunk. tehát a bit az egy bináris szám számjegye.
[Szerkesztve] -
shev7
veterán
válasz Forest_roby #1844 üzenetére
ez nem 23 bites szam
A legnagyobb szam a windows szamologepe kezel az 64 bites. Erteke: 18446744073709551615''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Bemutatkozott a Motorola Edge 50 Pro
- Micro Four Thirds
- Milyen TV-t vegyek?
- Android szakmai topik
- MILC felhasználók szakmai topikja
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Miskolc és környéke adok-veszek-beszélgetek
- Android alkalmazások - szoftver kibeszélő topik
- Apple notebookok
- YouTube
- További aktív témák...
- MSI Optix MAG281URF Gamer Monitor!28"/4k/144hz/Rapid IPS/1ms/Freesync-G-sync/HDMI 2.1/HDR400
- ÚJ BONTATLAN Macbook Air Apple M1 M2 M3 Legújabb Magyar 1 év Garancia Deák Térnél Azonnal Átvehető
- ÉRKEZETT Legújabb Bontatlan Új M2 IPAD PRO 2022 12,9 128GB - 256GB Wi-Fi Azonnal DEÁK TÉRNÉL Átvehe
- Akció Új Bontatlan 2023 iMac 24 M3 Chip 8/10 8GB/256GB SSD Azonnal Deák Térnél Átvehető 1 év garanc
- ÚJ Apple Pencil 1 - 2 első és második generációs BONTATLAN AZONNAL ÁTVEHETŐ DEÁK TÉR