Forum » Znanost in tehnologija » Digitalna evolucija
Digitalna evolucija
Sergio ::
Hehe. Naredil sem program, ki vzame input število, prešteje od 1 do števila, ter ga vrne.
Input == output, z veliko šodra. Critticall je potreboval na reprezentativnem vzorcu 1000 števil točno 35 sekund, da je ugotovil, da input==output, ter skočil na 0.1% prvotne zahtevnosti. Kul kul. :)
Sicer pa se mi zdi, da sem našel bug... Program med evoluiranjem inicializira nove spremenljivke. Nato lahko kakšno od teh zavrne ter neha uporabljati, a zadeva bo še vedno v inicializacijskem postopku na vrhu programa. Bug or feature?
Input == output, z veliko šodra. Critticall je potreboval na reprezentativnem vzorcu 1000 števil točno 35 sekund, da je ugotovil, da input==output, ter skočil na 0.1% prvotne zahtevnosti. Kul kul. :)
Sicer pa se mi zdi, da sem našel bug... Program med evoluiranjem inicializira nove spremenljivke. Nato lahko kakšno od teh zavrne ter neha uporabljati, a zadeva bo še vedno v inicializacijskem postopku na vrhu programa. Bug or feature?
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.
Zgodovina sprememb…
- spremenil: Sergio ()
Thomas ::
romci ... uporabi displacement na eni tabeli! Ne na arr256, ker ni za retvar.
(Očitno bo treba povečati število tabel. Pogovarjava se samo, kako to najmanj boleče izvesti)
Sergio ... ja ... tiste deklarirane spremenljivke so čisti bonus!
(Očitno bo treba povečati število tabel. Pogovarjava se samo, kako to najmanj boleče izvesti)
Sergio ... ja ... tiste deklarirane spremenljivke so čisti bonus!
Man muss immer generalisieren - Carl Jacobi
snow ::
Ja več tabel!
Gledam moje programe... tab[100][100][100] evol[100][12] popul[1000][20]... hm
Gledam moje programe... tab[100][100][100] evol[100][12] popul[1000][20]... hm
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins
Thomas ::
Zigam,
Česa ne razumeš? Kaj razumeš?
To je to, kar naslov pove.
Moja malenkost misli (je celo prepričana), da se z digitalno evolucijo lahko naredi (nadomesti) vsakršna inteligenca.
V to smer se intenzivno igramo.
Česa ne razumeš? Kaj razumeš?
To je to, kar naslov pove.
Moja malenkost misli (je celo prepričana), da se z digitalno evolucijo lahko naredi (nadomesti) vsakršna inteligenca.
V to smer se intenzivno igramo.
Man muss immer generalisieren - Carl Jacobi
snow ::
Thomas pa double tipi tudi bodo?
Na polovici poti programiranja taylorjeve vrste ln(1+x) sem se spomnil, da tu pa ne gre za cela števila. Šment!
Na polovici poti programiranja taylorjeve vrste ln(1+x) sem se spomnil, da tu pa ne gre za cela števila. Šment!
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins
Thomas ::
Bodo, ja. Ne morem reči točno kdaj - ampak morajo biti in so že stalno v načrtu. Ne tako kot več tabel, ki so prišle v plan šele danes - a bodo zelo kmalu.
Man muss immer generalisieren - Carl Jacobi
Satanized ::
$dimension stevila[200]
$rinvar stevila[](0,999)
$retvar vsota
iterator=0;
konec=200;
vsota=0;
delna=0;
while (iterator<=konec) {
delna=stevila[iterator];
vsota+=delna;
iterator++;
}
Kaj je tu narobe? Cist zmeden sem.
lp, JT.
-- is it love or is it faith --
Thomas ::
> vsota+=delna;
Mora biti:
vsota=vsota+delna;
Ali pa
vsota+=5;
Strict.
Mora biti:
vsota=vsota+delna;
Ali pa
vsota+=5;
Strict.
Man muss immer generalisieren - Carl Jacobi
Satanized ::
Thanks!
Zdele se pa pocutm omejeno. (Re)stricted.
lp, JT.
Zdele se pa pocutm omejeno. (Re)stricted.
lp, JT.
-- is it love or is it faith --
romci ::
Thomas: evo originala
Trenutno sem malo prevec zaposlen - se bom pa kej med vikendom ukvarjal, ce bo cajt, pa ce ne bo kdo drug kej pogruntu :)
Vec tabel bi blo pa super ja..vsaj 2 ali 3.
Aja, pa glede na original TSP je zamenjana procedura za permutacije s tisto ki sem jo ze prej enkrat postal.
Once again - very good work :)
LP,
Roman
Trenutno sem malo prevec zaposlen - se bom pa kej med vikendom ukvarjal, ce bo cajt, pa ce ne bo kdo drug kej pogruntu :)
Vec tabel bi blo pa super ja..vsaj 2 ali 3.
Aja, pa glede na original TSP je zamenjana procedura za permutacije s tisto ki sem jo ze prej enkrat postal.
Once again - very good work :)
LP,
Roman
-- not all those who wander are lost...
Satanized ::
// The algorithm has been enhanced for 20.2484%
$DIMENSION stevila[200]
$RINVAR stevila[](0,999)
$RETVAR vsota
$BES
konec=200;
while (iterator$lt;konec) {
delna=stevila[iterator];
vsota=vsota+delna;
iterator++;
delna=stevila[iterator];
vsota=vsota+delna;
iterator++;
delna=stevila[iterator];
vsota=vsota+delna;
iterator++;
delna=stevila[iterator];
vsota=vsota+delna;
iterator++;
delna=stevila[iterator];
vsota=vsota+delna;
iterator++;
}
$EES
Zakaj je to 642 steps, medtem ko je
$dimension stevila[200]
$rinvar stevila[](0,999)
$retvar vsota
iterator=0;
konec=200;
vsota=0;
delna=0;
while (iterator<konec) {
delna=stevila[iterator];
vsota=vsota+delna;
iterator++;
}
tole 805 steps. Ne razumem. Someone enlighten me, please
lp, JT.
-- is it love or is it faith --
Zgodovina sprememb…
- spremenil: Satanized ()
Thomas ::
Romci, bomo pogledali jutri.
Satanized!
Važno je, koliko linij se izvede (vključno po večkrat) - in ne koliko jih je.
Satanized!
Važno je, koliko linij se izvede (vključno po večkrat) - in ne koliko jih je.
Man muss immer generalisieren - Carl Jacobi
Satanized ::
Ja Thomas. Ampak, ce pogledas prvo kodo vidis, da je v bistvu v tistem while stavku notri zdruzenih vec while stavkov. V teoriji. Zakaj je torej en while stavek, ki ima v sebi vec teoreticnih while stavkov, boljsi kot while stavek, ki se ponovi po normalni poti.
1. koda:
2. koda
1 "hitrejsa" od 2, why?
1. koda:
while{i=i){
i++;
i++;
i++;
i++;
}
2. koda
while{i=i){
i++;
}
1 "hitrejsa" od 2, why?
-- is it love or is it faith --
Satanized ::
Eh, nevermind. I get it. Ni preverjanja logicnega stavka v oklepaju pri while. Dddd ... Sam pol bi mogo do konca zoptimizirat. Like 200x
hmm?
lp, JT.
delna=stevila[iterator];
vsota=vsota+delna;
iterator++;
hmm?
lp, JT.
-- is it love or is it faith --
Thomas ::
Še ga goni! Zadeva ni povsem bliskovita (zaenkrat)!
Man muss immer generalisieren - Carl Jacobi
Satanized ::
Yup. Evoluira ... in to popolnoma korektno in v pravi smeri. Superca. Bom kaj moje c++ kode C-ritticnno prepisal.
lp, JT.
lp, JT.
-- is it love or is it faith --
snow ::
Na računalniških faksih bi morali začeti poučevati Critticalliščino.
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins
jeti51 ::
Satanized: jasno, da je prva koda hitrejša, saj druga pred vsakim inkrementiranjem i-ja preveri pogoj i==i, medtem ko prva koda to naredi le na vsake 4 inkrementiranja. če boš dobro pogledla kodo, boš najbrž nemalokrat opazil, da se ponekod razni segmenti kode (do potankosti enaki) pojavijo večkrat zapored, potem pa sledi še zanka, katere telo je spet sestavljeno iz takega identičnega segmenta kode. Takšne "umazane" finte v glavenm preprečuješ tako, da malo bolj omejiš število vrstic programa.
Zgodovina sprememb…
- spremenil: jeti51 ()
Satanized ::
Zdi se mi, da je v mojem primeru compiler neprimerno hitrejsi optimizator, v primerjavi z Critticallom. Compiler namreč itak to while zanko razpelje tako, da nastane xy-krat i++, brez preverjanja pogoja. Critticall prav tako to naredi, ampak v dolgem nedolocenem casu.
Brez dvoma, Critticall je zakon!
lp, JT.
Brez dvoma, Critticall je zakon!
lp, JT.
-- is it love or is it faith --
Thomas ::
Nekako imamo dve vrsti optimizacije. Ena je optimizacija kode, druga je optimizacija samega algoritma.
Težko je reči, kje je meja med njima. A matter of a degree.
Compilerji imajo vgrajenih nekaj rulesov, kako se optimizira koda in po teh rulesih hitro naredijo, kar je v takem primeru narediti.
Critticall nima vgrajenih nobenih takih pravil, ampak jih kvečjemu vsakič sproti izumi. Kot recimo pri Fibonacciju. Po večih poteh pride do lahko malenkostno različnih programčkov, ker v nasprotju s compilerjem, nima vgrajenega sistema pravil, kako se najbolje kompilira.
Toda, da bi compiler precompiliral bubble sort v nekega, do sedaj nepoznanega, se compilerju ne more zgoditi. Critticallu pa lahko.
Jest mislim, da vsako kodo, ki jo Critticall da od sebe, naj še skompajla kakšen optimizacijski compiler.
Težko je reči, kje je meja med njima. A matter of a degree.
Compilerji imajo vgrajenih nekaj rulesov, kako se optimizira koda in po teh rulesih hitro naredijo, kar je v takem primeru narediti.
Critticall nima vgrajenih nobenih takih pravil, ampak jih kvečjemu vsakič sproti izumi. Kot recimo pri Fibonacciju. Po večih poteh pride do lahko malenkostno različnih programčkov, ker v nasprotju s compilerjem, nima vgrajenega sistema pravil, kako se najbolje kompilira.
Toda, da bi compiler precompiliral bubble sort v nekega, do sedaj nepoznanega, se compilerju ne more zgoditi. Critticallu pa lahko.
Jest mislim, da vsako kodo, ki jo Critticall da od sebe, naj še skompajla kakšen optimizacijski compiler.
Man muss immer generalisieren - Carl Jacobi
romci ::
Thomas: popravljen TSP, tako da uporablja arr256 in offset
AMPAK,
se vedno mi javlja syntax error v vrstici
ne glede na to, na kaksen nacin zapisem inkrementalni stavek (i=i+num1, i+=1, ...).
A bug or a restriction? :)
AMPAK,
se vedno mi javlja syntax error v vrstici
for (i=num0;i <= n;i=i+num1) { // fill in the numbers of nodes
arr256[i] = i;
}
ne glede na to, na kaksen nacin zapisem inkrementalni stavek (i=i+num1, i+=1, ...).
A bug or a restriction? :)
-- not all those who wander are lost...
OwcA ::
@Thomas: ali si že kdaj razmišljal, da bi Critticall naredil kot knjižnico (z omejitvami shareware verzije, seve) in s tem omogočil, da bi večje šttevilo ljudi pisalo uporabnški umesnik in dodajalo funkcionalnsoti (ali bolje, prevajanje kode v Critticallu razumljivo). Sam bi rad videl Critticall, kot konzolno aplikacijo, brez vsakršnih bonbončkov, le (brutalna) funkcionalnost.
Otroška radovednost - gonilo napredka.
BigWhale ::
> Sam bi rad videl Critticall, kot konzolno aplikacijo, brez
> vsakršnih bonbončkov, le (brutalna) funkcionalnost.
Ja in pa seveda Linux verzija. ;)
Sicer pa, zame bo najbolj zanimiva tista verzija, ki bo znala SELECT stavke optimizirat. Ker je to, kar me v vecini casa bremza ;)
> vsakršnih bonbončkov, le (brutalna) funkcionalnost.
Ja in pa seveda Linux verzija. ;)
Sicer pa, zame bo najbolj zanimiva tista verzija, ki bo znala SELECT stavke optimizirat. Ker je to, kar me v vecini casa bremza ;)
Thomas ::
OwcA,
Kar se tiče "raw power console" ... ta enkrat bo. Morda takrat, ko bo tudi self modifying. Ker sem pa prej gasilec kot piroman - tega zadnjega zunaj v divjini precej verjetno ne bo.
Whale,
Sej tele selecte se da pretvoriti v ife. A hočeš rečt, naj bo to stvar prevajalnika? Zna bit, da maš prav.
Kar se tiče "raw power console" ... ta enkrat bo. Morda takrat, ko bo tudi self modifying. Ker sem pa prej gasilec kot piroman - tega zadnjega zunaj v divjini precej verjetno ne bo.
Whale,
Sej tele selecte se da pretvoriti v ife. A hočeš rečt, naj bo to stvar prevajalnika? Zna bit, da maš prav.
Man muss immer generalisieren - Carl Jacobi
Thomas ::
Eno vprašanje - kako vam (ne) delajo optične miši? Kej dost prijavlja ene mouse errorje?
Man muss immer generalisieren - Carl Jacobi
OwcA ::
@Thomas: meni dela čisto lepo (Microsoft IntelliMoues Explorer). Ali bi se dalo v prihodnji verziji naresti, da se drsniki pomikajo tudi, če ustrezno zavrtiš kolešček na mišonu?
Otroška radovednost - gonilo napredka.
snow ::
Ista miš kot owcina mi isto dela.
Bom pa sprobal še en računalnik z logitech mx300 še jutri.
Bom pa sprobal še en računalnik z logitech mx300 še jutri.
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins
asPeteR ::
Thomas: Zakaj bi pa opticne misi delale probleme? Saj so te iste z vidika racunalnika kot kroglicne?
(isti krmilni signali)
(isti krmilni signali)
http://blog.stegnar.com
Thomas ::
Aha hvala, potem nima optična miš nič pri vsem skupaj. Pri enmu prjatlu je ta problem, mi je povedal včeraj, samo prvotna diagnoza - optika - ni to.
Man muss immer generalisieren - Carl Jacobi
Phil ::
Tudi meni z logitechovim optičnim mišakom dela BP.
Drugače pa Thomas čestitam za critticall. Izjemna zadeva, brez dvoma.
Izgleda da je res da nas do AI omejuje samo še CPU power.
Kakšni pa so odzivi na critticall v tujini. Si že kje objavil na kakem tujem forumu?
LP
Drugače pa Thomas čestitam za critticall. Izjemna zadeva, brez dvoma.
Izgleda da je res da nas do AI omejuje samo še CPU power.
Kakšni pa so odzivi na critticall v tujini. Si že kje objavil na kakem tujem forumu?
LP
Thomas ::
Ja preden grem resno zavzemat svet, sem hotel zadevo preveriti doma.
Tole, da mora biti več arrayev je pomebna zadeva, ki smo jo spoznali medtem. Pa tudi poenotenje increasa v for in increasa sicer se mora zgoditi.
Potem bom zadevo poskusil Slashdotati in še marsikaj. V enem tednu bova ready.
Sicer smo pa na ircu govorili o tem z ljudmi, s katerimi se poznamo že od prej. Nekaterim gre mimo, drugi mislijo, da je to celo "odločilni korak".
I wonder!
Pa hvala vsem za priznanja, ki ste nama jih dali doslej!
Tole, da mora biti več arrayev je pomebna zadeva, ki smo jo spoznali medtem. Pa tudi poenotenje increasa v for in increasa sicer se mora zgoditi.
Potem bom zadevo poskusil Slashdotati in še marsikaj. V enem tednu bova ready.
Sicer smo pa na ircu govorili o tem z ljudmi, s katerimi se poznamo že od prej. Nekaterim gre mimo, drugi mislijo, da je to celo "odločilni korak".
I wonder!
Pa hvala vsem za priznanja, ki ste nama jih dali doslej!
Man muss immer generalisieren - Carl Jacobi
ciki57 ::
Kdo mi verjame, da sem s critticalom razvil algoritem za množenje matrik reda O( n^2)?
Zgodovina sprememb…
- spremenil: ciki57 ()
Sergio ::
Objavi original pa optimizirano 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.
Thomas ::
Ja jest ti verjamem.
Sicer dopuščam veliko možnost, da nisi kje dobro pogledal ... ampak lahko pa da tudi si.
Kdo bi vedu!
Sicer dopuščam veliko možnost, da nisi kje dobro pogledal ... ampak lahko pa da tudi si.
Kdo bi vedu!
Man muss immer generalisieren - Carl Jacobi
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.
Zgodovina sprememb…
- spremenil: Sergio ()
ciki57 ::
Spodaj je optimiziran algoritem. Množimo kvadratne matrike velikosti n*n. Vse tri matrike so v arrayu abcd[]. Prvih n*n polj je matrika A, nato B in na koncu C (rezultat)
Potem sem napisal še program kjer sem testiral algoritem na matrikah 3x3, 10x10 in 50x50 in zgleda da deluje pravilno saj vrne isti rezultat kot običajen alogitem.
Potem sem napisal še program kjer sem testiral algoritem na matrikah 3x3, 10x10 in 50x50 in zgleda da deluje pravilno saj vrne isti rezultat kot običajen alogitem.
int abcd[10000]; int arr256[256];int num0=0;int num1=0; int num2=0;int num3=0;int off1=0; int off2=0;int off3=0;int i1=0;int i2=0; int indexc=0;int i3=0;int indexb=0; int e1=0;int temp1=0;int e2=0;int element=0; int e3=0;int temp3=0;int indexa=0;int noe=0; int critticall5=0;int critticall1=0;int critticall2=0; int critticall3=0;int critticall4=0; int critticall6=0;int critticall7=0; num0=0; num1=1; num2=2; num3=3; off1=0; off2=n*n; off3=num2*off2; i1++; indexc=off3+critticall3; indexb=off2+i2; e1=abcd[temp1]; e2=abcd[indexb]; element=e1*e2; abcd[indexc]=element; i3++; indexb=indexb+n; e1=abcd[num1]; e2=abcd[indexb]; element=e1*e2; e3=abcd[indexc]; temp3=e3+element; abcd[indexc]=temp3; i3++; if (i3 < n) { indexa=temp1^i3; indexb=indexb+n; e1=abcd[indexa]; e2=abcd[indexb]; element=e1*e2; e3=abcd[indexc]; temp3=e3+element; abcd[indexc]=temp3; } i2++; while (i2 < n) { indexc=off3+i2; i3=0; indexb=off2+i2; e1=abcd[temp1]; e2=abcd[indexb]; element=e1*e2; abcd[indexc]=element; i3++; indexb=indexb+n; e1=abcd[num1]; e2=abcd[indexb]; element=e1*e2; e3=abcd[indexc]; temp3=e3+element; abcd[indexc]=temp3; i3++; if (i3 < n) { indexb=indexb+n; e1=abcd[indexa]; e2=abcd[indexb]; element=e1*e2; temp3=temp3+element; abcd[indexc]=temp3; } i2++; } temp1=num0^n; i2=noe; indexc=off3+temp1; i3=critticall5; indexb=off2+i2; e1=abcd[temp1]; e2=abcd[indexb]; element=e1*e2; abcd[indexc]=element; i3++; indexa=temp1+i3; indexb=indexb+n; e1=abcd[indexa]; e2=abcd[indexb]; element=e1*e2; e3=abcd[indexc]; temp3=e3+element; abcd[indexc]=temp3; i3++; i2++; if (i3 < n) { indexa=temp1+i3; indexb=indexb+n; e1=abcd[indexa]; critticall5=1; e2=abcd[indexb]; element=e1*e2; e3=abcd[indexc]; temp3=e3+element; abcd[indexc]=temp3; } i1++; while (i2 < n) { indexc=off3+temp1; indexc=indexc+i2; i3=0; indexb=off2+i2; e1=abcd[temp1]; e2=abcd[indexb]; element=e1*e2; abcd[indexc]=element; i3++; while (i3 < n) { indexa=temp1+i3; indexb=indexb+n; e1=abcd[indexa]; e2=abcd[indexb]; element=e1*e2; e3=abcd[indexc]; temp3=e3+element; abcd[indexc]=temp3; i3++; } i2++; } if (i1 < n) { temp1=off2-n; i2=0; while (i2 < n) { indexc=off3+temp1; indexc=indexc|i2; i3=critticall5; indexb=off2+i2; e1=abcd[temp1]; e2=abcd[indexb]; element=e1*e2; abcd[indexc]=element; while (i3 < n) { indexa=temp1+i3; indexb=indexb+n; e1=abcd[indexa]; e2=abcd[indexb]; element=e1*e2; e3=abcd[indexc]; temp3=e3+element; abcd[indexc]=temp3; i3++; } i2++; } }
Zgodovina sprememb…
- spremenil: Sergio ()
Thomas ::
Če bi dal še <pre> pred source in </pre> za source, bi videli še indentacijo.
Ampak, ni bistvo.
Prav mogoče je, da je vrag vzel šalo!
Ampak, ni bistvo.
Prav mogoče je, da je vrag vzel šalo!
Man muss immer generalisieren - Carl Jacobi
Sergio ::
Kakšne so bile optimizacije? Razlika od originalne kode? Kakšna je bila pohitritev?
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.
ciki57 ::
razvijal sem na testnih matrikah 2*2 in 3*3, in je stvar izboljšalo za 40%.(v kakšni uri)
Potem sem stvar pognal še na matrikah 2*2 do 10*10 in je Critticall pokazal časovno zahtevnost c*n^1.8 (ter izboljšal še za 1%)
Najprej sem mislil da se je stvar optimizirala samo za 2*2 in 3*3 matrike, in sem šel še posebej testirat in stvar deluje tudi pri višjih n-jih in je dejansko hitreje:
- običajen alogritom rabi 5 sekund da 1000x zmnoži dve 50*50 matriki.
- moj to naredi v trenutnku.
Potem sem stvar pognal še na matrikah 2*2 do 10*10 in je Critticall pokazal časovno zahtevnost c*n^1.8 (ter izboljšal še za 1%)
Najprej sem mislil da se je stvar optimizirala samo za 2*2 in 3*3 matrike, in sem šel še posebej testirat in stvar deluje tudi pri višjih n-jih in je dejansko hitreje:
- običajen alogritom rabi 5 sekund da 1000x zmnoži dve 50*50 matriki.
- moj to naredi v trenutnku.
Zgodovina sprememb…
- spremenil: ciki57 ()
Thomas ::
Hja ... zdej smo v tisti fazi, ko je treba zadevo stestirat popolnoma brezobzirno, če funcjona. Na tej strani tudi zgleda, da ja!
Če bi se slučajno izkazalo da je res res, je to MAJOR prodor v računanju z matrikami. Nekako za naslovnico New York Timesa.
No kidin!
Če bi se slučajno izkazalo da je res res, je to MAJOR prodor v računanju z matrikami. Nekako za naslovnico New York Timesa.
No kidin!
Man muss immer generalisieren - Carl Jacobi
ciki57 ::
Če res deluje brezhibno, lahko daš ta algoritem na homepage critticalla kot en hud primer optimizacije.
Seveda ne pozabi omeniti, kdo je algoritem "izumil"
Seveda ne pozabi omeniti, kdo je algoritem "izumil"
Gandalfar ::
ciki57: lahko zadevo zrihtas v taki obliki, da se jo bo dalo prevesti s standarnim c prevajalnikom? Lahko objavis se osnovni algoritem? Zanima me koliksno stopnjo optimizacije ima critticall glede na optimizacijo compilerja.
ciki57 ::
Sej zgornji algoritem se da prevest samo dodaš vse skupaj v main() proceduo, določiš n ter napolneš array.
ciki57 ::
aja, navaden algoritem (zahtevnost O(n^3)) je tak:
int n;
int abcd[10000];
num0 = 0;
num1 = 1;
num2 = 2;
num3 = 3;
off1 = 0;
off2 = n*n;
off3 = num2*off2;
noe=num3*off2;
i1 = num0;
while (i1 < n) {
i2 = num0;
while (i2 < n) {
temp1 = i1*n;
indexC = off3 + temp1;
indexC = indexC +i2;
abcd[indexC] = num0;
i3 = num0;
while (i3 < n) {
temp1 = i1*n;
temp2 = i3*n;
indexA = off1 + temp1;
indexA = indexA + i3;
indexB = off2 + temp2;
indexB = indexB + i2;
e1 = abcd[indexA];
e2 = abcd[indexB];
element = e1 * e2;
e3 = abcd[indexC];
temp3 = e3 + element;
abcd[indexC] = temp3;
i3++;
}
i2++;
}
i1++;
}
Thomas ::
Seveda, da bom. Samo ne bom napisal zraven "ciki57". Sej maš kakšno krščansko ime, ane?
Man muss immer generalisieren - Carl Jacobi
Super Sonic ::
no ja.. jest pa programiranje greva skupi NE.
Zgleda da Thomas ne pise samo postov. Tudi izumlja. Ce je vse to kar si napisal do sedaj res tvoje delo, snamem svoj klobuk/kapo dol.
Vsa cast!!!
delo genija
p.s.
kar pa se vedno ne pomeni da se strinjam s teboj v primeru-vojna v iraku
Zgleda da Thomas ne pise samo postov. Tudi izumlja. Ce je vse to kar si napisal do sedaj res tvoje delo, snamem svoj klobuk/kapo dol.
Vsa cast!!!
delo genija
p.s.
kar pa se vedno ne pomeni da se strinjam s teboj v primeru-vojna v iraku
Thomas ::
Če se izkaže za res - kaže kar dobro - potem bodo mnogi programi lahko tekli kar nekajkrat hitreje. 3D igrice vsekakor. Gotovo tudi F(@H) in še mnogi drugi!
Meni se zdi čudno kvečjemu to, da tak algoritem sploh obstaja. Da ga bo nekdo s Critticallom našel, če bi že obstajal, mi je pa logično.
Meni se zdi čudno kvečjemu to, da tak algoritem sploh obstaja. Da ga bo nekdo s Critticallom našel, če bi že obstajal, mi je pa logično.
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 | 7750 (5570) | Senitel |
» | Funkcija z logičnimi operaterji.... (strani: 1 2 )Oddelek: Programiranje | 5561 (4907) | CaqKa |
» | Petaflopsu naproti (strani: 1 2 3 )Oddelek: Novice / Procesorji | 8872 (8872) | Marjan |
» | cene permutacij help pleaseOddelek: Programiranje | 2074 (1681) | Sergio |
» | kako definirtati prasteviloOddelek: Programiranje | 3799 (3604) | ooux |