Forum » Programiranje » java pomoč
java pomoč
petzup ::
Potrebujem malce pomoči ker ne vem kako bi točno realiziral problem. Se pravi nek igralec uporabi v naslednjem koraku uporabi takšno stanje ki se je v prejšnjem koraku največkrat uporabilo, trenutno imam rešeno tako ampak seveda ne deluje pravilno:
Kar pomeni, grem prvič čez prvi korak, recimo da se stanje 1 največkrat ponovi, bo potem vsem nastavilo v drugem koraku 1 in potem tako naprej tudi v vseh naslednjih korakih...
int[] stevec = new int[2]; stevec[0] = 0; stevec[1] = 0; for (int t=0;t<stevilo_korakov;t++){ for (int i=0;i<stevilo_igralcev;i++){ // najprej nastavi neko random stanje stanja[t][i] = (int)(2*Math.random()); // potem presteva stanja if(stanja[t][i] == 0) { // presteje vsa predhodna stanja 0 stevec[t]++; } if(stanja[t][i] == 1) { // presteje vsa predhodna stanja 1 stevec[1]++; } // ce je stanje 0 veckrat kot 1 nastavi vse na 0 if(stevec[0] > stevec[1]){ stanja[t][i] = 0; } // ce je stanje 1 veckrat kot 0 nastavi vse na 1 if(stevec[1] > stevec[0]){ stanja[t][i] = 1; } // ce se pojavi da se stanje 0 pojavi enako krat kot stanje 1 if(stevec[0] == stevec[1]){ stanja[t][i] = (int)(2*Math.random()); // nastavi random stanje } } }
Kar pomeni, grem prvič čez prvi korak, recimo da se stanje 1 največkrat ponovi, bo potem vsem nastavilo v drugem koraku 1 in potem tako naprej tudi v vseh naslednjih korakih...
Math Freak ::
Kakšno napako ti vrne, katere vrednosti lahko zavzame stevilo_korakov, stevilo_igralcev ?
Stevec je tabela dimenzije 2, sepravi ima prostora samo za dve števili, kaj delaš s stevec[t]++?
Verjetno si hotel napisati stevec[0]++ ?
Stevec je tabela dimenzije 2, sepravi ima prostora samo za dve števili, kaj delaš s stevec[t]++?
Verjetno si hotel napisati stevec[0]++ ?
Zgodovina sprememb…
- spremenilo: Math Freak ()
petzup ::
Napake ne vrne nobene, normalno izpiše ampak ne deluje pravilno. Stevilo_korakov zavzame neko poljubno vrednost, prav tako stevilo_igralcev.
Recimo definiram stevilo_korakov = 3; stevilo_igralcev 5; in potem nafila stanja poljubno za vsakega igralca, (stanje 0, stanje 1).
stevec[] je tabela, kjer samo shranjujem za vsako posamezno stanje kolikokrat se pojavilo, da lahko potem na podlagi tega ugotavljam katero stanje se je večkrat uporabilo in tega potem upoštevam v drugem koraku.
Moja napaka stevec[0] je bilo mišljeno znotraj if zanke ja, hvala.
Na kratko, greš čez prvi korak, nastavi item igralcu stanje, stanje ki se največkrat ponovi v prvem koraku upošteva tudi v nadaljne.
Recimo definiram stevilo_korakov = 3; stevilo_igralcev 5; in potem nafila stanja poljubno za vsakega igralca, (stanje 0, stanje 1).
stevec[] je tabela, kjer samo shranjujem za vsako posamezno stanje kolikokrat se pojavilo, da lahko potem na podlagi tega ugotavljam katero stanje se je večkrat uporabilo in tega potem upoštevam v drugem koraku.
Moja napaka stevec[0] je bilo mišljeno znotraj if zanke ja, hvala.
Na kratko, greš čez prvi korak, nastavi item igralcu stanje, stanje ki se največkrat ponovi v prvem koraku upošteva tudi v nadaljne.
Zgodovina sprememb…
- spremenilo: petzup ()
Math Freak ::
Ne razumem kaj bi rad naredil. Če je stevilo_korakov = 3; stevilo_igralcev = 5; meni izpiše naključno tabelo:
Kaj ti tukaj ni všeč?
stanja: 00010 00000 00000 stevec 0: 10 stevec 1: 5
Kaj ti tukaj ni všeč?
petzup ::
Dejansko samo v prvem koraku prešteje vsa stanja, in tisto stanje se potem v naslednjem koraku pojavi pri vseh, v tem tvojem primeru:
1. korak 00010
stevec 0:4
stevec 1:1
sepravi bo
2.korak 00000
3.korak 00000
A ti je to čisto po naključju izpisalo tako ali dejansko stvar deluje pravilno?
1. korak 00010
stevec 0:4
stevec 1:1
sepravi bo
2.korak 00000
3.korak 00000
A ti je to čisto po naključju izpisalo tako ali dejansko stvar deluje pravilno?
Math Freak ::
Hmm, sepravi morajo biti vse razen prve vrstice nafilane ali samo z enkami, ali pa samo z ničlami? Recimo:
ali
?
00111 11111 11111 11111
ali
01001 00000 00000 00000
?
petzup ::
Ja tako je tisto stanje ki se pojavi v koraku največkrat jo potemm naslednji korak v celoti pridobi.
Math Freak ::
Pol pa ne smeš nametat vsega v for zanko. Probaj nekaj takega:
Verjetno bodo težave, če se ničel in enk pojavi enako. To boš verjetno znal popraviti.
for (int i = 0; i < stevilo_igralcev; i++) { // najprej nastavi neko random stanje stanja[0][i] = (int) (2 * Math.random()); // potem presteva stanja if (stanja[0][i] == 0) { // presteje vsa predhodna stanja 0 stevec[0]++; } else if (stanja[0][i] == 1) { // presteje vsa predhodna stanja 1 stevec[1]++; } } for (int t = 1; t < stevilo_korakov; t++) { for (int j = 0; j < stevilo_igralcev; j++) { // ce je stanje 0 veckrat kot 1 nastavi vse na 0 if (stevec[0] > stevec[1]) { stanja[t][j] = 0; } // ce je stanje 1 veckrat kot 0 nastavi vse na 1 else if (stevec[1] > stevec[0]) { stanja[t][j] = 1; } // ce se pojavi da se stanje 0 pojavi enako krat kot stanje 1 else { stanja[t][j] = (int) (2 * Math.random()); // nastavi random stanje } } }
Verjetno bodo težave, če se ničel in enk pojavi enako. To boš verjetno znal popraviti.
Zgodovina sprememb…
- spremenilo: Math Freak ()
Math Freak ::
Najbolje da celotno kodo preoblikuješ, ker določene stvari računaš večkrat brez potrebe.
Primer:
Primer:
int vecje = 0; for (int i = 0; i < stevilo_igralcev; i++) { stanja[0][i] = (int) (2 * Math.random()); if (stanja[0][i] == 0) { stevec[0]++; } else if (stanja[0][i] == 1) { stevec[1]++; } } if (stevec[1] > stevec[0]) { vecje = 1; } else if (stevec[1] == stevec[0]) { vecje = (int) (2 * Math.random()); } for (int t = 1; t < stevilo_korakov; t++) { for (int j = 0; j < stevilo_igralcev; j++) { stanja[t][j] = vecje; } }
Zgodovina sprememb…
- spremenilo: Math Freak ()
Math Freak ::
Tisto kar se pojavi v katerem koraku nisi povedal, zadnjem ali prvem? Če je odgovor prvem, potem je ta koda kul, sicer ne.
petzup ::
Ok tako dela, ampak problem je ker potem v naslednjem koraku, recimo drugo korak, še vedno preveri prvo for zanko in iz nje neko stanje random določi in tudi če dobim iz prvega koraka 00001 se večkrat zgodi da mi potem kar 11111 vrze v naslednjem koraku ven. Predvidevam da bi si po prvem koraku moralo nekako zapomnit da sem to for zanko še šel čez in je ne obdelujem še enkrat?
Se pravi ko grem prvič čez kompletno forzanko, si jo nekako zapomnim in je v drugem koraku več ne upoštevam.
Aja eh sem šele zdaj ugotovil da gre itak potem forzanka od prvega koraka naprej, ampak še vedno stanja ne pridejo ok, primer:
Se pravi ko grem prvič čez kompletno forzanko, si jo nekako zapomnim in je v drugem koraku več ne upoštevam.
Aja eh sem šele zdaj ugotovil da gre itak potem forzanka od prvega koraka naprej, ampak še vedno stanja ne pridejo ok, primer:
// 0 korak 1 1 1 0:0|1:3 // tule bi morale vse 0 bit 1 // 1 korak 0 0 0 // drugi korak 0 0 0
Zgodovina sprememb…
- spremenilo: petzup ()
petzup ::
Zopet rabim malce pomoči, imam graf nekaj podobnega temu in kaj bi rad dosegel je vbistu da vstavim recimo št 9(3x3) in mi izdela takšen graf avtomatsko, se pravi da ne potrebujem vpisovat vsake povezave posebej kot sem do sedaj. Mora pa prid v obliki rešetke seveda. Tu v mojem primeru je podano 3x2 ampak vrjetno če dela za 3x2 bo delalo tudi za vse ostale, ima kdo idejo kako to rešit?
Pebkac ::
Če prav razumem, ti hočeš tak graf predstaviti z incidenčno matriko? Po mojem bi bilo veliko bolj enostavno in učinkovito, če graf predstaviš z matriko, katere elementi so kar vozlišča, s tem da itak veš, da so sosedi od A[i][j] točno štirje: A[i - 1][j], A[i + 1][j], A[i][j - 1], A[i][j + 1]
Da si olajšaš delo si lahko potem napišeš funkcijo ki ti za določeno koordinato vrne vse sosede, s tem da preverja pogoj če si na robu grafa, da ne vračaš nesmiselnih sosedov.
Na ta način boš lahko 3×3 graf naredil enostavno s 3×3 matriko namesto 9×9.
Da si olajšaš delo si lahko potem napišeš funkcijo ki ti za določeno koordinato vrne vse sosede, s tem da preverja pogoj če si na robu grafa, da ne vračaš nesmiselnih sosedov.
Na ta način boš lahko 3×3 graf naredil enostavno s 3×3 matriko namesto 9×9.
Teja2 ::
Hei. Potrebovala bi pomoč.
Naloga:
Oglejmo si posebno trojiško drevo. Prvo poddrevo vsebuje elemente, ki so manjši od trenutnega elementa. Drugo, srednje drevo vsebuje elemente, večje od trenutnega elementa, vendar manjše od njegovega kvadrata. Tretje poddrevo vsebuje vse preostale elemente.
Napišite metoda za vstavljanje novega elementa v drevo.
A mogoče kdo ve kako se to naredi ?
Naloga:
Oglejmo si posebno trojiško drevo. Prvo poddrevo vsebuje elemente, ki so manjši od trenutnega elementa. Drugo, srednje drevo vsebuje elemente, večje od trenutnega elementa, vendar manjše od njegovega kvadrata. Tretje poddrevo vsebuje vse preostale elemente.
Napišite metoda za vstavljanje novega elementa v drevo.
A mogoče kdo ve kako se to naredi ?
ragezor ::
da, vem.
kje se je pa tebi ustavilo?
pomoje bi lahko ustvarili kak lepljivek, ki bi opisal kako vprasati za pomoc.
1. prilepi celotno besedilo naloge ali uvrsti vprasanje v kontekst.
2. prilepi svojo dosedanjo kodo na forum ali pastebin
3. opisi svoje razmisljanje kako si prisel do svoje kode in kje se ti je zataknilo
kje se je pa tebi ustavilo?
pomoje bi lahko ustvarili kak lepljivek, ki bi opisal kako vprasati za pomoc.
1. prilepi celotno besedilo naloge ali uvrsti vprasanje v kontekst.
2. prilepi svojo dosedanjo kodo na forum ali pastebin
3. opisi svoje razmisljanje kako si prisel do svoje kode in kje se ti je zataknilo
Teja2 ::
Besedilo je celotno. To je to kar je od naloge. ;)
Problem je ker ne vem niti kako bi začela....
Učim se programiranje za izpit. pa sem naletela na to nalogo, na staremu izpitu.
Problem je ker ne vem niti kako bi začela....
Učim se programiranje za izpit. pa sem naletela na to nalogo, na staremu izpitu.
ragezor ::
Verjetno bi bilo treba zacet s predavanji skozi leto in delat domace naloge.
Tele naloge ne bos resila brez da ves kaj so drevesa in verjetno ste se ucili algoritem za iskanje po drevesu ali vstavljanje v drevo. Sicer ni tezko pogruntat kako deluje search in vstavljanje (zelo podobno) ampak ne brez tega da ves kaj so drevesa.
Tele naloge ne bos resila brez da ves kaj so drevesa in verjetno ste se ucili algoritem za iskanje po drevesu ali vstavljanje v drevo. Sicer ni tezko pogruntat kako deluje search in vstavljanje (zelo podobno) ampak ne brez tega da ves kaj so drevesa.
Teja2 ::
Predavanja sem obiskovala in domače naloge tudi delala. Vendar mi smo imeli domače naloge le na vajah in na vajah nismo nič z drevesi delali.
Glede na moje zapiske z predavanj bi potem bila koda za to, tale :
boolean vstavi(int a){
if(glava > a){
if(levi == null){
levi = new Drevo();
levi.glava = a;
return(true);
}else{
return(levi.vstavi(a));
}
}else{
if(desni == null){
desni = new Drevo();
desni.glava = a;
return(true);
}else{
return(desni.vstavi(a));
}
Glede na moje zapiske z predavanj bi potem bila koda za to, tale :
boolean vstavi(int a){
if(glava > a){
if(levi == null){
levi = new Drevo();
levi.glava = a;
return(true);
}else{
return(levi.vstavi(a));
}
}else{
if(desni == null){
desni = new Drevo();
desni.glava = a;
return(true);
}else{
return(desni.vstavi(a));
}
ragezor ::
to mas za binarno drevo, ki ima samo "levi" in "desni", ti pa moras razsiriti metodo, da hendla se "sredinski".
pa za tvoje dobro si razjasni kaj je Drevo in upam, da ves, da je funkcija vstavi metoda objekta Drevo.
pa za tvoje dobro si razjasni kaj je Drevo in upam, da ves, da je funkcija vstavi metoda objekta Drevo.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Izdelava algoritmaOddelek: Znanost in tehnologija | 1554 (934) | Klemen86 |
» | Resne težave z razumevanjem osnov programiranja (strani: 1 2 )Oddelek: Programiranje | 16694 (13206) | RatedR |
» | Združevanje polj [C]Oddelek: Programiranje | 994 (858) | ragezor |
» | Spreminjanje vrednosti v polju [C]Oddelek: Programiranje | 2182 (1981) | specing |
» | [Raptor] Razcep na prafaktorjeOddelek: Šola | 2448 (1990) | Math Freak |