Forum » Znanost in tehnologija » Digitalna evolucija
Digitalna evolucija
OwcA ::
Thomas: ali si kdaj poskusil kako se Critticall obnese v primerjavi z enim agresivnim vektorskim prevajalnikom kot je recimo Intelov C++ Compiler 7. Bolj kot gledam tole kodo, bolj se mi zdi, da prevajalniku ne ostane kaj prida za optimizirati. Kar niti ne bi bil tak problem, če ne bi prevajalnik znal stvari, ki jih Critticall ne, kot je naprimer določanje kje se hrani kak podatek, paralelizem, posebni ukazi odvisni od procesorja ... Ne me narobe razumeti, ne mislim primerjave med bubble sortom in Critticallovo optimizacijo, ampak med recimo quick sortom ali heap sortom z agresivnimi optimizacijami in izkoriščanjem prekaljenih knjižnic in nečem kar izpljune Crittical.
Otroška radovednost - gonilo napredka.
Thomas ::
Samo randomu. To je placentni sesalci se v Avstraliji niso razvili. Treba dostikrat probat, na večih celinah!
Se pa splača zmanjšati zgornjo mejo 10 krat in nekaj 10 krat prej bomo prišli do rezultata.
Sieve kot je v vgrajenem primeru ... tudi ni za odmet.
Se pa splača zmanjšati zgornjo mejo 10 krat in nekaj 10 krat prej bomo prišli do rezultata.
Sieve kot je v vgrajenem primeru ... tudi ni za odmet.
Man muss immer generalisieren - Carl Jacobi
Thomas ::
@OwcA
Agresivni prevajalnik ima potem še zmerom možnost, da (dodatno) naredi, kar največ zna.
Tukaj ne gre za optimizacijo kode, pač pa algoritma. (Dodatno) optimizacijo kode pa v vsakem primeru prepuščamo compilerjem.
@darklord
Critticall naredi neko transformacijo kode v neke številke in iz njih vse izračuna.
Agresivni prevajalnik ima potem še zmerom možnost, da (dodatno) naredi, kar največ zna.
Tukaj ne gre za optimizacijo kode, pač pa algoritma. (Dodatno) optimizacijo kode pa v vsakem primeru prepuščamo compilerjem.
@darklord
Critticall naredi neko transformacijo kode v neke številke in iz njih vse izračuna.
Man muss immer generalisieren - Carl Jacobi
OwcA ::
@Thomas:
To vem. Ampak čimbolj specifično in "čudno" (torej takšno, katere pomena sam ne zna razbrati) kodo imaš tem manj bo postoril prevajalnik. Če ne ve kaj naj bo vedno na stacku in kaj ne, ne bo dal ničesar, ali pa bo skušal preveč optimizirati (naprimer z odstranjevanjem blokov kode ali "podvojenih" ukazov) in potem ne bo nič delalo. Nakar je potrebno vložiti veliko časa, da se mu dopove kaj ja in kaj ne, kar je ravno nasproto od tega kar skušaš doseči s Critticallom, hitrer razvoj kompleksnih algoritmov. Če prav razumem se Critticall loteva optimizacije na podoben način kot večina prevajalnikov. Zmanjšati skuša število osnovnih ukazov izvedenih v enem prehodu. Prevajalnik ima tu to prednost, da ve kaj koliko stane na danem procesorju in lahko naprimer prilagaja poravnavo podatkov (data aligment). Res, da bi lahko to prevajlnik storil tudi po tem, ko s kodo opravi Critticall, ampak kot sem že omenil obstaja nevarnost, da je taka koda za prevajalnik nerazumljiva (morda bi se lahko Critticall naučil v kodo tlačiti še kake #pragma ).
Agresivni prevajalnik ima potem še zmerom možnost, da (dodatno) naredi, kar največ zna.
Tukaj ne gre za optimizacijo kode, pač pa algoritma. (Dodatno) optimizacijo kode pa v vsakem primeru prepuščamo compilerjem.
To vem. Ampak čimbolj specifično in "čudno" (torej takšno, katere pomena sam ne zna razbrati) kodo imaš tem manj bo postoril prevajalnik. Če ne ve kaj naj bo vedno na stacku in kaj ne, ne bo dal ničesar, ali pa bo skušal preveč optimizirati (naprimer z odstranjevanjem blokov kode ali "podvojenih" ukazov) in potem ne bo nič delalo. Nakar je potrebno vložiti veliko časa, da se mu dopove kaj ja in kaj ne, kar je ravno nasproto od tega kar skušaš doseči s Critticallom, hitrer razvoj kompleksnih algoritmov. Če prav razumem se Critticall loteva optimizacije na podoben način kot večina prevajalnikov. Zmanjšati skuša število osnovnih ukazov izvedenih v enem prehodu. Prevajalnik ima tu to prednost, da ve kaj koliko stane na danem procesorju in lahko naprimer prilagaja poravnavo podatkov (data aligment). Res, da bi lahko to prevajlnik storil tudi po tem, ko s kodo opravi Critticall, ampak kot sem že omenil obstaja nevarnost, da je taka koda za prevajalnik nerazumljiva (morda bi se lahko Critticall naučil v kodo tlačiti še kake #pragma ).
Otroška radovednost - gonilo napredka.
Thomas ::
@darkolord
Izračun je popolnoma pravilen, v smislu, koliko korakov se izvrši.
Tako kot se algoritmi edino morejo primerjati.
Kako pa izgleda stvar potem v tem ali onem procesorju ali mikrokodi, je pa stvar compilerjev in njihovega poznavanja procesorskih ukazov, koliko prvo in drugo nivojskega cachea ima, kako hiter je RAM ...
To je pa že en drug layer. Kar je pa že tudi odgovor, ki bi ga hotel imeti OwcA.
Samo ni pene. Intel (AND) mi da par milijončkov, pa mu povem, kako se zadeva naredi še za direktno optimizacijo njihovih kebrčkov.
Sem imel tole na assembler nivoju že leta 1998. Samo da je bil assembler en tak bolj čuden in smo potem rezultate prevajali v C++.
Izračun je popolnoma pravilen, v smislu, koliko korakov se izvrši.
Tako kot se algoritmi edino morejo primerjati.
Kako pa izgleda stvar potem v tem ali onem procesorju ali mikrokodi, je pa stvar compilerjev in njihovega poznavanja procesorskih ukazov, koliko prvo in drugo nivojskega cachea ima, kako hiter je RAM ...
To je pa že en drug layer. Kar je pa že tudi odgovor, ki bi ga hotel imeti OwcA.
Samo ni pene. Intel (AND) mi da par milijončkov, pa mu povem, kako se zadeva naredi še za direktno optimizacijo njihovih kebrčkov.
Sem imel tole na assembler nivoju že leta 1998. Samo da je bil assembler en tak bolj čuden in smo potem rezultate prevajali v C++.
Man muss immer generalisieren - Carl Jacobi
Thomas ::
@OwcA,
Jest mislim, da Critticall koda je compilerju čisto razumljiva. Je pa hitro nerazumljiva ljudem.
Jest mislim, da Critticall koda je compilerju čisto razumljiva. Je pa hitro nerazumljiva ljudem.
Man muss immer generalisieren - Carl Jacobi
Thomas ::
@darkolord,
Če so linije tiste, ki jih zgenerira Critticall, boš zelo težko našel primer, kjer ni tako. Sploh če bo razlika v številu izvedenih linij znatna.
Če so linije tiste, ki jih zgenerira Critticall, boš zelo težko našel primer, kjer ni tako. Sploh če bo razlika v številu izvedenih linij znatna.
Man muss immer generalisieren - Carl Jacobi
jeti51 ::
Okej, po prespani noči, kaj pogrešam?
Pogrešam funkcijo abs() in bitshift v levo in desno (čeprav se da tudi simulirati z večkratnim množenjem/deljenjem z 2). Predlog za prihodnjo izboljšavo (poleg seveda floata in ostalih zadev).
Pogrešam funkcijo abs() in bitshift v levo in desno (čeprav se da tudi simulirati z večkratnim množenjem/deljenjem z 2). Predlog za prihodnjo izboljšavo (poleg seveda floata in ostalih zadev).
Thomas ::
ABS se zaenkrat nadomešča z - operatorjem, če je število manjše od 0.
Bit shift pa z množenjem/deljenjem s potencami števila 2.
Zaradi tega zadeva ni povsem optimalna. Vendar je napaka majhna in še ta BO odpravljena.
Največjo prioriteto ima pa zdaj nek "primer.c", ki celo stvar postavi v povsem novo luč. Kot bi obarvali ČB sliko.
Več o tem zvečer.
Bit shift pa z množenjem/deljenjem s potencami števila 2.
Zaradi tega zadeva ni povsem optimalna. Vendar je napaka majhna in še ta BO odpravljena.
Največjo prioriteto ima pa zdaj nek "primer.c", ki celo stvar postavi v povsem novo luč. Kot bi obarvali ČB sliko.
Več o tem zvečer.
Man muss immer generalisieren - Carl Jacobi
Sergio ::
Hm. Tale isprime.c, ki si mi ga pomagal napisati, me malo skrbi. Kaj če Critticallu nastopi taka mutacija, da bo vrnila "po naključju" vse prave vrednosti (torej tabelo prvih 1000 praštevil)? Kako _veš_, da je zadeva reprezentativna? ;)
Tako grem jaz, tako gre vsak, kdor čuti cilj v daljavi:
če usoda ustavi mu korak,
on se ji zoperstavi.
če usoda ustavi mu korak,
on se ji zoperstavi.
Thomas ::
Samo vprašanje časa je, kdaj se bo program skrčil na naštevanje praštevil do 1000.
ČE je to tisto kar hočeš vedeti. IN ČE je to najbolj optimalno.
Če pa boš napisal tak program za sito, ko je sieve.c iz primerov, ki ima variabilno zgornjo mejo - potem bo našel odgovor na vprašanje "praštevila do variabilnega n".
$minimize lines 100 pa celo fizično prepreči nastanek programa, ki bi ti naštel kaj dosti praštevil. Bi moral najprej v neko spremenljivko zapisati index, v drugo vrednost in šele s tretjim ukazom bi se praštevilo znašlo v tabeli, kot smo zahtevali. (Tukaj se vidi, da ima striktna sintaksa tudi nek globji pomen.)
Kompleksnost programa po Kolmogorovu ne sme biti večja od njegovega outputa, če ne je smešen!
ČE je to tisto kar hočeš vedeti. IN ČE je to najbolj optimalno.
Če pa boš napisal tak program za sito, ko je sieve.c iz primerov, ki ima variabilno zgornjo mejo - potem bo našel odgovor na vprašanje "praštevila do variabilnega n".
$minimize lines 100 pa celo fizično prepreči nastanek programa, ki bi ti naštel kaj dosti praštevil. Bi moral najprej v neko spremenljivko zapisati index, v drugo vrednost in šele s tretjim ukazom bi se praštevilo znašlo v tabeli, kot smo zahtevali. (Tukaj se vidi, da ima striktna sintaksa tudi nek globji pomen.)
Kompleksnost programa po Kolmogorovu ne sme biti večja od njegovega outputa, če ne je smešen!
Man muss immer generalisieren - Carl Jacobi
snow ::
Potem je odkril novo formulo za praštevila do 1000?
Jaz od sedaj naprej pišem vse v critticall kodi.
Jaz od sedaj naprej pišem vse v critticall kodi.
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins
Thomas ::
snow,
Ja, specifičen program za vsa praštevila do 1000, podobno kot specifični program za število dni po mesecih - je gotovo rezultat, ki ga dobiš, če "se s tem preveč igraš"!
Jest mislim, da bi bilo že tako ali tako dobro, da bi vsi pisali v Critticall code. Ampak vseeno bo treba narest nek prevajalnik iz C++ v Critticall code.
Ja, specifičen program za vsa praštevila do 1000, podobno kot specifični program za število dni po mesecih - je gotovo rezultat, ki ga dobiš, če "se s tem preveč igraš"!
Jest mislim, da bi bilo že tako ali tako dobro, da bi vsi pisali v Critticall code. Ampak vseeno bo treba narest nek prevajalnik iz C++ v Critticall code.
Man muss immer generalisieren - Carl Jacobi
romci ::
Sem cisto za tak prevajalnik - ze celo dopoldne prevajam en simpl algoritem za leksikografske permutacije array-a iz C-ja v C-ritticall, pa se zmer ga kot kaze nekje userjem :)
-- not all those who wander are lost...
Sergio ::
Še ena mala skrb. Sedaj se malo igram z algoritmom fibonaccija. In sem tudi naredil to, da imam tabelo vhodnih vrednosti (preverja fib tabele za različne zgornje fib meje). Je pa problem, da doživim integer overflow, ker fibonacci prehitro raste. Obstaja kakšna rešitev, ali moram enostavno omejiti zadevo?
Tako grem jaz, tako gre vsak, kdor čuti cilj v daljavi:
če usoda ustavi mu korak,
on se ji zoperstavi.
če usoda ustavi mu korak,
on se ji zoperstavi.
Sergio ::
$rinvar doKam (5,45) $dimension rezultati[50] $minimize lines on $sound on $retvar rezultati[] $bes prviClen = 0; temp = 0; temp2 = 0; temp3 = 0; temp4 = 0; temp5 = 0; drugiClen = 1; i = 0; numZero = 0; numOne = 1; numTwo = 2; rezultati[numZero] = prviClen; rezultati[numOne] = drugiClen; for (i=numTwo; i<doKam; i+=numOne) { temp2 = i-numOne; temp3 = i-numTwo; temp4 = rezultati[temp2]; temp5 = rezultati[temp3]; temp = temp4+temp5; rezultati[i] = temp; } $eesMoje videnje Critticall Fibonaccija. Mam zdele na optimiziranju. A je dobr napisan?
Tako grem jaz, tako gre vsak, kdor čuti cilj v daljavi:
če usoda ustavi mu korak,
on se ji zoperstavi.
če usoda ustavi mu korak,
on se ji zoperstavi.
CaqKa ::
smem vprašat zakaj bi sploh fibonacija optimiziral? a ni že dovolj optimiziran?
aja pa nkeje zgoraj sem prosil če bi kdo napisal algoritem za quick in heap sort
aja pa nkeje zgoraj sem prosil če bi kdo napisal algoritem za quick in heap sort
romci ::
Evo, permutacije array-a:
Originalen C-progcic
Na kritiziranje pripravljen algoritem
Zdej pa sam se da ga prepricam, da bi to jst rad mel na vseh moznih array in vseh moznih permutacijah :)
Originalen C-progcic
Na kritiziranje pripravljen algoritem
Zdej pa sam se da ga prepricam, da bi to jst rad mel na vseh moznih array in vseh moznih permutacijah :)
-- not all those who wander are lost...
Sergio ::
Tako grem jaz, tako gre vsak, kdor čuti cilj v daljavi:
če usoda ustavi mu korak,
on se ji zoperstavi.
če usoda ustavi mu korak,
on se ji zoperstavi.
Thomas ::
romci ... več $invarov mu daj. Na roko napisanih primerov input date. Potem bo najbrž uvedel še dodatne, algoritom bo pa za vse.
Man muss immer generalisieren - Carl Jacobi
Sergio ::
Thomas, kako? Trenutno imam 72.5%.
Tako grem jaz, tako gre vsak, kdor čuti cilj v daljavi:
če usoda ustavi mu korak,
on se ji zoperstavi.
če usoda ustavi mu korak,
on se ji zoperstavi.
Sergio ::
71.9%. To je pač navit procesor, hihi
Tako grem jaz, tako gre vsak, kdor čuti cilj v daljavi:
če usoda ustavi mu korak,
on se ji zoperstavi.
če usoda ustavi mu korak,
on se ji zoperstavi.
romci ::
Hm, bom poskusu - sicer so pa itak tele permutacije sam del necesa mal vecjega, tko da same poseb jih ne bom predolg pustu kuhat - sam do ene 85% :)
Na fibonacciju pa po prib 1 min. 72,7% :)
Thomas: a question - PPS = ... ?Processes? Per Second?
Na fibonacciju pa po prib 1 min. 72,7% :)
Thomas: a question - PPS = ... ?Processes? Per Second?
-- not all those who wander are lost...
Zgodovina sprememb…
- spremenil: romci ()
Thomas ::
romci,
Programs per second.
Taprva številka je skreiranih programov, druga konzistentnih, tretja z zaželenim outputom - vse to na sekundo.
Programs per second.
Taprva številka je skreiranih programov, druga konzistentnih, tretja z zaželenim outputom - vse to na sekundo.
Man muss immer generalisieren - Carl Jacobi
Thomas ::
romci,
Ukaza $bes in $ees lahko kar izpustiš v tvojih permutacijah. Še zmeraj bo vse v redu, samo nekoliko širši scope da večje možnosti optimizacij.
$bes in $ees postaviš samo takrat, kadar te zanima le optimizacija enega podsegmenta.
Ukaza $bes in $ees lahko kar izpustiš v tvojih permutacijah. Še zmeraj bo vse v redu, samo nekoliko širši scope da večje možnosti optimizacij.
$bes in $ees postaviš samo takrat, kadar te zanima le optimizacija enega podsegmenta.
Man muss immer generalisieren - Carl Jacobi
romci ::
Thomas,
hotel sem samo excludat iz optimizacije filanje arraya z elementi, kar je blo potrebno realizirat programsko - kot sem rekel so tele permutacije samo en delcek nekega drugega algoritma, pri katerem pa arraya ne bom filal programsko.
hotel sem samo excludat iz optimizacije filanje arraya z elementi, kar je blo potrebno realizirat programsko - kot sem rekel so tele permutacije samo en delcek nekega drugega algoritma, pri katerem pa arraya ne bom filal programsko.
-- not all those who wander are lost...
CaqKa ::
pa vseeno fibonačija optimizirat?
a ni to tista zadeva
a1=1
a2=1
anaslednji=anaslednji-1+anaslednji-2
?
em dajte malo pokomentirat kaj je zdaj zevuliralo in kaj je boljše.
a ni to tista zadeva
a1=1
a2=1
anaslednji=anaslednji-1+anaslednji-2
?
em dajte malo pokomentirat kaj je zdaj zevuliralo in kaj je boljše.
romci ::
men je za fibonacija zevuliralo za dobrih 30% v tole:
numone++;
numtwo|=2;
dokam--;
rezultati[numone]=numone;
temp++;
for (i=numtwo;i < dokam;i+=numone) {
temp3++;
rezultati[i]=temp;
temp5=rezultati[temp3];
temp=temp+temp5;
}
rezultati[i]=temp;
-- not all those who wander are lost...
Thomas ::
CaqKa,
Kar se vse sorte sortov tiče, jih bom enkrat dal na homepage. Da se bodo ljudje lahko igrali z njimi.
Kar se Fibonaccija tiče - več algoritmov mu ustreza. TAB[i]=TAB[i-1]+TAB[i-2] - mora procesor nekako izvesti. Kar direktno v realnosti ne gre, ampak je treba dati navodila stroju, da to izvrši.
Sej input in output kodi sta jasni.
romci,
Ja, okay. Samo vseeno - while zanko bi mu jest prepustil v celoti. Tako smo trenutno na 67,8%.
Kar se vse sorte sortov tiče, jih bom enkrat dal na homepage. Da se bodo ljudje lahko igrali z njimi.
Kar se Fibonaccija tiče - več algoritmov mu ustreza. TAB[i]=TAB[i-1]+TAB[i-2] - mora procesor nekako izvesti. Kar direktno v realnosti ne gre, ampak je treba dati navodila stroju, da to izvrši.
Sej input in output kodi sta jasni.
romci,
Ja, okay. Samo vseeno - while zanko bi mu jest prepustil v celoti. Tako smo trenutno na 67,8%.
Man muss immer generalisieren - Carl Jacobi
jeti51 ::
CaqKa: Optimizira se algoritem. Program se tako preoblikuje, da odvečne operacije pomeče ven. Pri Fibonacciju kakšnih hudih sprememb ne bo (vseeno se izboljša za skoraj 30% po 10 minutah), pri kakšni drugi stvari se pa dejansko spremeni praktično cel algoritem. Recimo poglej si primer tistega "random sorta" (ene dve strani nazaj), kjer se je Thomasu preoblikoval kar v nekakšen bubble sort.
BigWhale ::
Critticall.exe *shudder*
You've left me in the dark here... Once again, kateri del portanja predstavlja problem? :)
Saj zadeva je jasno tako napisana, da je spodaj 'engine' s svojim APIjem, potem je pa na to zaliman GUI? :)
You've left me in the dark here... Once again, kateri del portanja predstavlja problem? :)
Saj zadeva je jasno tako napisana, da je spodaj 'engine' s svojim APIjem, potem je pa na to zaliman GUI? :)
snow ::
Zgoraj nekje je nekdo spraseval o vecdimenzionalnih tabelah.
Da se stvar resit nekako takole:
Zero. Hmph.
Znova in znova se dogajajo skoki, ki nas popeljejo bližje k singularnosti. Critticall je en tak skok.
Daj mi naj en napiše tisti html oznaki za < in > .
Hvala xbitu spodaj.
Da se stvar resit nekako takole:
rows=10;
columns=20;
all=rows*columns;
int tab[rows][columns];
int tab2[all];
zero=0;
//tab1[rows][columns] -> tab2[all]
for(i=zero;i<rows;i+=1){
for(j=zero;j<columns;j+=1){
kopy=i*rows;
kopy+=j;
tab2[kopy]=tab[i][j];
}
}
//tab2[all] -> tab1[rows][columns]
for(i=zero;i<all;i+=1){
rown=i/rows;
columnn=i%rows;
tab[rown][column]=tab2[i]
}
Zero. Hmph.
Znova in znova se dogajajo skoki, ki nas popeljejo bližje k singularnosti. Critticall je en tak skok.
Daj mi naj en napiše tisti html oznaki za < in > .
Hvala xbitu spodaj.
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins
Zgodovina sprememb…
- spremenilo: snow ()
darh ::
< om >
Excuses are useless! Results are priceless!
Zgodovina sprememb…
- spremenil: darh ()
Sergio ::
Ma navdušen sem :)
Po dveh urah je prišel do 69,4%, nato pa rekel, da sem neregistriran.
Bi se dalo, Thomas, da se program po dveh urah ne bi zaprl, ampak bi samo čakal na tvoj klik, in nato nadaljeval dalje? Ali je to že preveč funkcionalnosti za unreg verzijo?
Po dveh urah je prišel do 69,4%, nato pa rekel, da sem neregistriran.
Bi se dalo, Thomas, da se program po dveh urah ne bi zaprl, ampak bi samo čakal na tvoj klik, in nato nadaljeval dalje? Ali je to že preveč funkcionalnosti za unreg verzijo?
Tako grem jaz, tako gre vsak, kdor čuti cilj v daljavi:
če usoda ustavi mu korak,
on se ji zoperstavi.
če usoda ustavi mu korak,
on se ji zoperstavi.
romci ::
Snow: hvala, ze nekaj casa veselo izracunavam indexe :) ampak sem mislil da gre kej bolj na izi
Sergio: odpri se 1x, nalozi ze izboljsan program in OLE, gremo naprej :)
Thomas: ce ti ni odvec, da te neregistrirani uporabniki izrabljamo za podporo , mogoce kaksna ideja, zakaj bi tlele javlju syntax error, ce pa v syntaxi ni errorja? :)
LP,
Roman
Sergio: odpri se 1x, nalozi ze izboljsan program in OLE, gremo naprej :)
Thomas: ce ti ni odvec, da te neregistrirani uporabniki izrabljamo za podporo , mogoce kaksna ideja, zakaj bi tlele javlju syntax error, ce pa v syntaxi ni errorja? :)
LP,
Roman
-- not all those who wander are lost...
asPeteR ::
romci: Kaj pa ce je po dveh urah ne pojavi noben evoluiran program? Se pomaga tvoja resitev?
Thomas je tocno vedel, kje postaviti omejitev.
Za "navadno" uporabo zadostuje Shareware verzija, za kaj bolj kompleksnega pa je fajn da se odpravi dveurna omejitev ...
Razen ce zadevo laufas na kaksem optreon serverju z osmimi proci ... Samo Critticall verjetno ni optimiziran za vec procesorjev, ali pac?
Thomas je tocno vedel, kje postaviti omejitev.
Za "navadno" uporabo zadostuje Shareware verzija, za kaj bolj kompleksnega pa je fajn da se odpravi dveurna omejitev ...
Razen ce zadevo laufas na kaksem optreon serverju z osmimi proci ... Samo Critticall verjetno ni optimiziran za vec procesorjev, ali pac?
Kostko ::
BigWhale: sej drgač critticall dela preko winea - sicer je to začasna rešitev dokler ne pride vn native linux verzija, vendar stvar čist lepo dela drgač bi pa kakšna console verzija programa pršla prow, da ne bi rabu glih grafike za poganjat tole
Human stupidity is not convergent, it has no limit!
darh ::
meni tudi javi sintax error, v podobnem primeu kot romciju:
Drugače pa... mal exprerimentiram.. in sem naredu "human-style" množilnik dveh števil do 999. Me zanima kolk časa rabi da ugotovi da je vseeno če pomnoži dani cifri :)
nekej[stotice] = 100;
Drugače pa... mal exprerimentiram.. in sem naredu "human-style" množilnik dveh števil do 999. Me zanima kolk časa rabi da ugotovi da je vseeno če pomnoži dani cifri :)
Excuses are useless! Results are priceless!
Kostko ::
xbite, poskusi takole:
sto = 100;
nekej[stotice] = sto;
Human stupidity is not convergent, it has no limit!
jeti51 ::
Evo, da povem, kaj je meni naredil iz tistega naivnega random sorta (v psevdokodi):
Zadevo je spravil na 0.7% prvotne zahtevnosti. Res je izumil nekakšen bubble sort, kjer menja sosednje pare elementov, ki niso urejeni. Slabost je, da prvi neurejen par išče vsakič čisto od začetka tabele, namesto da bi vsakič šel do konca in zamenjal vse neurejene pare. Je pa to očitno mnogo boljše, kot naivni random sort.
sorted = 1
od zacetka do konca pojdi skozi vse pare sosednjih elementov
ce je trenutni par neurejen, sorted = 0 in break, sicer vzemi naslednji par
while (sorted==0) //dokler tabela ni sortirana
zamenjaj trenutni neurejeni par elementov med sabo
sorted = 1
//zdaj naredi popolnoma isto kot cisto na zacetku:
od zacetka do konca pojdi skozi vse pare sosednjih elementov
ce je trenutni par neurejen, sorted = 0 in break, sicer vzemi naslednji par
end while
Zadevo je spravil na 0.7% prvotne zahtevnosti. Res je izumil nekakšen bubble sort, kjer menja sosednje pare elementov, ki niso urejeni. Slabost je, da prvi neurejen par išče vsakič čisto od začetka tabele, namesto da bi vsakič šel do konca in zamenjal vse neurejene pare. Je pa to očitno mnogo boljše, kot naivni random sort.
Zgodovina sprememb…
- spremenil: jeti51 ()
Gandalfar ::
Zdele testiram zadevo z gcc-3.3 optimizacijami, intelovim c compilerjem in critticalom..
mi lahko nekdo na mail ( gandalf@owca.info ) poslje primer kaksne kode, ki se izvaja vsaj kaksno minuto ali pa vec, ce se da..
Rabim neoptimizirano kodo in potem critticallovo optimizacijo. Rezultate bom potem tukaj objavil..
Imam ze neke primere samo bi rad se kaksnega, da ne bom na podlagi enega vlekel napacnih povzetkov ven..
mi lahko nekdo na mail ( gandalf@owca.info ) poslje primer kaksne kode, ki se izvaja vsaj kaksno minuto ali pa vec, ce se da..
Rabim neoptimizirano kodo in potem critticallovo optimizacijo. Rezultate bom potem tukaj objavil..
Imam ze neke primere samo bi rad se kaksnega, da ne bom na podlagi enega vlekel napacnih povzetkov ven..
Thomas ::
romci,
Imaš eno tabelo, v katero lahko pišeš. Če imaš več nizov, jih moraš lepo porazdelizi po prvotnem nizu, ki ga imenuješ kakorkoli že.
Displacement od 0, ti je potem orodje za reševanje tega.
VENDAR imaš pa še rezerni arr256[], ki ga uporabi namesto tvojega curpata.
Imaš eno tabelo, v katero lahko pišeš. Če imaš več nizov, jih moraš lepo porazdelizi po prvotnem nizu, ki ga imenuješ kakorkoli že.
Displacement od 0, ti je potem orodje za reševanje tega.
VENDAR imaš pa še rezerni arr256[], ki ga uporabi namesto tvojega curpata.
Man muss immer generalisieren - Carl Jacobi
Thomas ::
romci,
Pošlji original ... bomo videli, kaj se da narest.
Pošlji original ... bomo videli, kaj se da narest.
Man muss immer generalisieren - Carl Jacobi
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Najhitrejši programski jezik? (strani: 1 2 )Oddelek: Programiranje | 7786 (5606) | Senitel |
» | Funkcija z logičnimi operaterji.... (strani: 1 2 )Oddelek: Programiranje | 5627 (4973) | CaqKa |
» | Petaflopsu naproti (strani: 1 2 3 )Oddelek: Novice / Procesorji | 8930 (8930) | Marjan |
» | cene permutacij help pleaseOddelek: Programiranje | 2082 (1689) | Sergio |
» | kako definirtati prasteviloOddelek: Programiranje | 3806 (3611) | ooux |