Java/Python/C++ hjálp...
-
Höfundur - Kóngur
- Póstar: 4273
- Skráði sig: Mán 07. Júl 2008 23:32
- Reputation: 67
- Staða: Ótengdur
Re: Java hjálp...
Flott mál, en ef ég vil svara með já og nei? (orð, ekki bókstafir)
Hvað set ég í if setninguna? Ég get ekki gert if (svar == 'já') þá kemur "unclosed character literal"
Hvað set ég í if setninguna? Ég get ekki gert if (svar == 'já') þá kemur "unclosed character literal"
Re: Java hjálp...
Notar ' ' bara með char, " " er notað fyrir strengi.
Annars hef ég ekkert notað Java og veit ekki hvernig þú getur notað orð í staðinn fyrir bókstafi.
Annars hef ég ekkert notað Java og veit ekki hvernig þú getur notað orð í staðinn fyrir bókstafi.
-
- Bara að hanga
- Póstar: 1573
- Skráði sig: Mán 16. Jún 2008 21:54
- Reputation: 1
- Hafðu samband:
- Staða: Ótengdur
Re: Java hjálp...
prófaðu að búa til streng
og svo if setningin
Kóði: Velja allt
String positive = "já";
og svo if setningin
Kóði: Velja allt
if (svar == positive)
System.out.println("Flott mál");
else
System.out.println("Þá bendi ég þér á Melabúðina");
-
Höfundur - Kóngur
- Póstar: 4273
- Skráði sig: Mán 07. Júl 2008 23:32
- Reputation: 67
- Staða: Ótengdur
Re: Java hjálp...
Ef ég geri:
Þá fæ ég alltaf út "Svaraðu með já eða nei"
Kóði: Velja allt
import java.util.Scanner;
public class melur2{
public static void main(String[] args){
Scanner lesa = new Scanner(System.in);
String svar;
String ja = "já";
String nei = "nei";
System.out.println("Ertu melur?");
svar = lesa.next();
if (svar == ja)
System.out.println("Flott mál");
else if (svar == nei)
System.out.println("Þá bendi ég þér á Melabúðina");
else
System.out.println("Svaraðu með já eða nei");
}
}
Þá fæ ég alltaf út "Svaraðu með já eða nei"
Re: Java hjálp...
Náði í DrJava og þetta var ekki að virka hjá mér heldur, fann þetta: http://leepoint.net/notes-java/data/str ... rison.html
nota semsagt if (svar.equals(ja)) eða bara svar.equals("Já") og sleppa því að skilgreina ja og nei breyturnar
nota semsagt if (svar.equals(ja)) eða bara svar.equals("Já") og sleppa því að skilgreina ja og nei breyturnar
-
Höfundur - Kóngur
- Póstar: 4273
- Skráði sig: Mán 07. Júl 2008 23:32
- Reputation: 67
- Staða: Ótengdur
-
Höfundur - Kóngur
- Póstar: 4273
- Skráði sig: Mán 07. Júl 2008 23:32
- Reputation: 67
- Staða: Ótengdur
Re: Java hjálp...
Enn og aftur þarf ég að leita hingað. Er að vinna eftirfarandi verkefni:
Búið til forrit sem les inn fimm heiltölur sem eru á bilinu frá 1 - 6. Við gerum ráð fyrir það þetta séu tölur sem hafa komið upp í spilinu Yatsy. Forritið á að segja til um hvort tölurnar mynda annað hvort litla röð, þ.e. 1 2 3 4 og 5 eða stóra röð, þ.e. tölurnar 2 3 4 5 og 6.
Ábending: Það getur auðveldað lausnaraðferðina að lesa tölur inn í fylki og raða síðan fylkinu.
Mig vantar hjálp við að koma þessu inn í if setningu, s.s. if (fylki myndar röð) { Þetta er röð }
Búið til forrit sem les inn fimm heiltölur sem eru á bilinu frá 1 - 6. Við gerum ráð fyrir það þetta séu tölur sem hafa komið upp í spilinu Yatsy. Forritið á að segja til um hvort tölurnar mynda annað hvort litla röð, þ.e. 1 2 3 4 og 5 eða stóra röð, þ.e. tölurnar 2 3 4 5 og 6.
Ábending: Það getur auðveldað lausnaraðferðina að lesa tölur inn í fylki og raða síðan fylkinu.
Kóði: Velja allt
import java.util.Arrays;
import java.util.Scanner;
public class fylki1 {
public static void main(String[] args) {
Scanner lesa = new Scanner(System.in);
int tala[] = new int[6];
for (int i=0; i<6; i++) {
System.out.println("Sláðu inn tölu "+(i+1));
tala[i] = lesa.nextInt();
}
for (int i=0; i<6; i++) {
System.out.println("Tala "+(i+1)+" - "+tala[i]);
}
Arrays.sort(tala);
for (int i=0; i<6; i++) {
System.out.print(tala[i]+" ");
}
}
}
Mig vantar hjálp við að koma þessu inn í if setningu, s.s. if (fylki myndar röð) { Þetta er röð }
Re: Java hjálp...
Kóði: Velja allt
bool rod = true;
if(tala[0] == 1 || tala[0] == 2)
{
for(int i = 0; i<5; i++)
{
if(tala[i+1] != tala[i] + 1)
rod = false;
}
if (rod)
{
if(tala[0] == 1)
System.out.println("Litla röð");
else
System.out.println/"Stóra röð");
}
}
-
Höfundur - Kóngur
- Póstar: 4273
- Skráði sig: Mán 07. Júl 2008 23:32
- Reputation: 67
- Staða: Ótengdur
Re: Java hjálp...
Takk, skil lítið í þessu en ég náði að leysa þetta verkefni.
Þú gætir samt mögulega hjálpað mér með næsta verkefni sem hljóðar:
Búið til forrit sem les inn fimm heiltölur sem eru á bilinu frá 1 - 6. Við gerum ráð fyrir það þetta séu tölur sem hafa komið upp í spilinu Yatsy. Forritið á að segja til um hvort nota má tölurnar sem eitt par, tvö pör, þrír eins, fjórir eins, hús eða Yatsy.
Ábending: Það getur auðveldað lausnaraðferðina að búa til fylki af teljurum sem segja til um hversu oft ákveðin tala kom upp.
Dæmi um virkni forrits:
tala 1: 2
tala 2: 5
tala 3: 5
tala 4: 2
tala 5: 3
Það má nota þetta sem eitt par
Það má nota þetta sem tvö pör
Annað dæmi um virkni forrits:
tala 1: 6
tala 2: 6
tala 3: 2
tala 4: 2
tala 5: 6
Það má nota þetta sem eitt par
Það má nota þetta sem tvö pör
Það má nota þetta sem hús
Það má nota þetta sem þrír eins
[code]// Skilaverkefni 21
// Daníel Grétarsson
// 12. apríl 2010
import java.util.Arrays;
import java.util.Scanner;
public class fylki2 {
public static void main(String[] args) {
Scanner lesa = new Scanner(System.in);
int tala[] = new int[5];
int teljarar[] = new int[6];
for (int i=0; i<5; i++) {
System.out.println("Teningur "+(i+1));
tala[i] = lesa.nextInt();
if (tala[i] == 1) teljarar[0] += 1;
if (tala[i] == 2) teljarar[1] += 1;
if (tala[i] == 3) teljarar[2] += 1;
if (tala[i] == 4) teljarar[3] += 1;
if (tala[i] == 5) teljarar[4] += 1;
if (tala[i] == 6) teljarar[5] += 1;
}
}
}
Ég sé ekki, miðað við kunnáttu mína, hvernig ég get leyst þetta án þess að detta í if setningar sem ná langleiðina á Ísafjörð.
Þú gætir samt mögulega hjálpað mér með næsta verkefni sem hljóðar:
Búið til forrit sem les inn fimm heiltölur sem eru á bilinu frá 1 - 6. Við gerum ráð fyrir það þetta séu tölur sem hafa komið upp í spilinu Yatsy. Forritið á að segja til um hvort nota má tölurnar sem eitt par, tvö pör, þrír eins, fjórir eins, hús eða Yatsy.
Ábending: Það getur auðveldað lausnaraðferðina að búa til fylki af teljurum sem segja til um hversu oft ákveðin tala kom upp.
Dæmi um virkni forrits:
tala 1: 2
tala 2: 5
tala 3: 5
tala 4: 2
tala 5: 3
Það má nota þetta sem eitt par
Það má nota þetta sem tvö pör
Annað dæmi um virkni forrits:
tala 1: 6
tala 2: 6
tala 3: 2
tala 4: 2
tala 5: 6
Það má nota þetta sem eitt par
Það má nota þetta sem tvö pör
Það má nota þetta sem hús
Það má nota þetta sem þrír eins
[code]// Skilaverkefni 21
// Daníel Grétarsson
// 12. apríl 2010
import java.util.Arrays;
import java.util.Scanner;
public class fylki2 {
public static void main(String[] args) {
Scanner lesa = new Scanner(System.in);
int tala[] = new int[5];
int teljarar[] = new int[6];
for (int i=0; i<5; i++) {
System.out.println("Teningur "+(i+1));
tala[i] = lesa.nextInt();
if (tala[i] == 1) teljarar[0] += 1;
if (tala[i] == 2) teljarar[1] += 1;
if (tala[i] == 3) teljarar[2] += 1;
if (tala[i] == 4) teljarar[3] += 1;
if (tala[i] == 5) teljarar[4] += 1;
if (tala[i] == 6) teljarar[5] += 1;
}
}
}
Ég sé ekki, miðað við kunnáttu mína, hvernig ég get leyst þetta án þess að detta í if setningar sem ná langleiðina á Ísafjörð.
-
Höfundur - Kóngur
- Póstar: 4273
- Skráði sig: Mán 07. Júl 2008 23:32
- Reputation: 67
- Staða: Ótengdur
-
Höfundur - Kóngur
- Póstar: 4273
- Skráði sig: Mán 07. Júl 2008 23:32
- Reputation: 67
- Staða: Ótengdur
Re: Java hjálp...
Komið
Kóði: Velja allt
// Skilaverkefni 22
// Daníel Grétarsson
// 12. apríl 2010
import java.util.Arrays;
import java.util.Scanner;
public class fylki1 {
public static void main(String[] args) {
Scanner lesa = new Scanner(System.in);
int tala[] = new int[5];
int teljarar[] = new int[6];
for (int i=0; i<5; i++) {
System.out.println("Teningur "+(i+1));
tala[i] = lesa.nextInt();
if (tala[i] == 1) teljarar[0] += 1;
if (tala[i] == 2) teljarar[1] += 1;
if (tala[i] == 3) teljarar[2] += 1;
if (tala[i] == 4) teljarar[3] += 1;
if (tala[i] == 5) teljarar[4] += 1;
if (tala[i] == 6) teljarar[5] += 1;
}
int par = 0;
int þrir = 0;
int tvopor = 0;
for (int i=0; i<6; i++) {
if (teljarar[i] == 2) par++;
if (teljarar[i] == 3) þrir++;
}
if (par == 1 || par == 2)
System.out.println("Þetta má nota sem par");
if (par == 2 || (par == 1 && þrir ==1))
System.out.println("Þetta má nota sem tvö pör");
if (þrir == 1)
System.out.println("Þetta má nota sem þrjá eins");
if (par == 1 && þrir == 1)
System.out.println("Þetta má nota sem hús");
}
}
-
Höfundur - Kóngur
- Póstar: 4273
- Skráði sig: Mán 07. Júl 2008 23:32
- Reputation: 67
- Staða: Ótengdur
Re: Java hjálp...
Mig langar að spyrja ykkur að einu varðandi fylki. Ég get reiknað með
en get ég ekki gert manudir[0,2,4,6,7,] = 31 osfrv? þarf ég að skrifa alltaf upp hvert fyrir sig?
Kóði: Velja allt
public static int dagar(int dag, int man, int a) {
int[] manudir = new int[12];
manudir[0] = 31;
manudir[1] = 28;
int fra = 0;
man--;
for (int i = 0; i <= man; i++) {
fra = fra+(manudir[i]*man);
}
fra = fra+10;
return fra;
}
en get ég ekki gert manudir[0,2,4,6,7,] = 31 osfrv? þarf ég að skrifa alltaf upp hvert fyrir sig?
Re: Java hjálp...
Þú þarft að skrifa hvert upp fyrir sig. Eða nota eitthvað eins og:
Svo geturðu auðvitað verið sniðugri en þetta og komið þessu í færri stafi en þá ertu væntanlega farinn að gera fáránleg trix. Það borgar sig mjög sjaldan.
Kóði: Velja allt
int[] manudir = {31, 28, 31, 30, 31, ...};
Svo geturðu auðvitað verið sniðugri en þetta og komið þessu í færri stafi en þá ertu væntanlega farinn að gera fáránleg trix. Það borgar sig mjög sjaldan.
-
- Besserwisser
- Póstar: 3835
- Skráði sig: Sun 20. Okt 2002 09:35
- Reputation: 157
- Staðsetning: Somewhere something went horribly wrong
- Staða: Ótengdur
Re: Java hjálp...
eða
Kóði: Velja allt
manudir[0] = manudir[2] = manudir[4] = manudir[6] = manudir[7] = 31;
-
- Besserwisser
- Póstar: 3337
- Skráði sig: Mið 08. Okt 2008 22:07
- Reputation: 35
- Staðsetning: /dev/null
- Staða: Ótengdur
Re: Java hjálp...
Sá hjá þér að þú notar breytu með séríslenskum staf (þ / þrir) ... það er mjög slæm forritunaraðferð.
i7 920 @ 2.8 GHz | Gigabyte EX58-UD3R | CSX 3x2 GB DDR3 @ 1600 MHz | Gigabyte ATi Radeon HD 5850 | Sileo 500 | RealPower 600W | Corsair Force 3 120 GB | 27" FullHD | W7 x64
-
Höfundur - Kóngur
- Póstar: 4273
- Skráði sig: Mán 07. Júl 2008 23:32
- Reputation: 67
- Staða: Ótengdur
Re: Java hjálp...
intenz skrifaði:Sá hjá þér að þú notar breytu með séríslenskum staf (þ / þrir) ... það er mjög slæm forritunaraðferð.
Ok, ég reyni nú að forðast það þar sem mér datt í hug að það gæti verið bögg. Geri aldrei ð eða ö eða kommustafi. Þarna hef ég bara gleymt mér.
En takk annars fyrir ráðin.
EDIT: Kláraði þetta þökk sé ykkar snilligáfu
Kóði: Velja allt
// Skilaverkefni 12
// Daníel Grétarsson
// 22. sept 2010
import java.util.Scanner;
public class aramot {
public static void main(String[] args){
Scanner lesa = new Scanner(System.in);
int dagur;
int manudur;
int ar;
System.out.print("Sláðu inn dag: ");
dagur = lesa.nextInt();
System.out.print("Sláðu inn mánuð: ");
manudur = lesa.nextInt();
System.out.print("Sláðu inn ár: ");
ar = lesa.nextInt();
int nidurstada = dagar(dagur, manudur, ar);
System.out.println("Það eru "+nidurstada+" dagar frá áramótum þann "+dagur+"/"+manudur+"/"+ar);
}
public static int dagar(int dag, int man, int a) {
int hlaup = a % 4;
int[] manudir = new int[13];
manudir[1] = manudir[3] = manudir[5] = manudir[7] = manudir[8] = manudir[10] = manudir[12] = 31;
manudir[4] = manudir[6] = manudir[9] = manudir[11] = 30;
if (hlaup == 0) manudir[2] = 29;
else manudir[2] = 28;
int fra = 0;
for (int i = 0; i < man; i++) {
fra = fra+manudir[i];
}
fra = fra+dag;
return fra;
}
}
Er þetta ekki annars alveg rétt? Ég er allvega búinn að prufa þetta og þetta virkar fínt.
-
- Besserwisser
- Póstar: 3835
- Skráði sig: Sun 20. Okt 2002 09:35
- Reputation: 157
- Staðsetning: Somewhere something went horribly wrong
- Staða: Ótengdur
Re: Java hjálp...
minni texti og jafnvel skiljanlegri að skrifa
Afhverju er þetta array með lengd 13? Afhverju er þetta ekki bara 12 og byrjar á 0? manudir[0] er null/ekki initialized hjá þér.
Svo er formúlan til að finna hvort það er hlaupár ekki 100% rétt hjá þér:
Sjá wikipediu
Kóði: Velja allt
int[] manudir = {31,28,31,30,31,30,31,31,30,31,30,31};
Afhverju er þetta array með lengd 13? Afhverju er þetta ekki bara 12 og byrjar á 0? manudir[0] er null/ekki initialized hjá þér.
Svo er formúlan til að finna hvort það er hlaupár ekki 100% rétt hjá þér:
Kóði: Velja allt
if year modulo 400 is 0
then is_leap_year
else if year modulo 100 is 0
then not_leap_year
else if year modulo 4 is 0
then is_leap_year
else
not_leap_year
Sjá wikipediu
Re: Java hjálp...
Daz skrifaði:minni texti og jafnvel skiljanlegri að skrifaKóði: Velja allt
int[] manudir = {31,28,31,30,31,30,31,31,30,31,30,31};
Afhverju er þetta array með lengd 13? Afhverju er þetta ekki bara 12 og byrjar á 0? manudir[0] er null/ekki initialized hjá þér.
Þetta virkar hjá honum af því að man er 1 index og java trítar tóma manudir[0] greinilega sem 0.
@OP: Ég myndi nota kóðann hans Daz sem ég vitna hérna í til að setja upp mánuði. Nota svo hlaupárs algrímið þar til að breyta manudir[1] í 29 ef það er hlaupár. Svo þarftu að aðlaga lykkjuna sem telur daga þannig að það sé farið uppí man - 1 en ekki bara man.
Eitthvað svona:
Kóði: Velja allt
public static int dagar(int dag, int man, int a) {
int[] manudir = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if (a % 400 == 0 || (a % 4 == 0 && a % 100 != 0)) manudir[1] = 29;
int fra = 0;
for (int i = 0; i < man - 1; i++) {
fra = fra+manudir[i];
}
fra = fra+dag;
return fra;
}
-
Höfundur - Kóngur
- Póstar: 4273
- Skráði sig: Mán 07. Júl 2008 23:32
- Reputation: 67
- Staða: Ótengdur
Re: Java hjálp...
Var að forrita 21 með föllum. Finnst þetta bara nokkuð vel gert.
Er samt ekki viss með gefaSpil fallið. Er þetta ekki alveg rétt hugsun? spil 10-13 gefa bara 10 stig ekki satt?
Er búinn að keyra þetta fram og aftur og virkar bara fínt. En þar sem þetta eru random tölur þá er erfitt að keyra fram allar mögulegar niðurstöður.
Kóði: Velja allt
import java.util.Scanner;
public class spil21fall {
public static void main(String[] args) {
Scanner lesa = new Scanner(System.in);
String svar = "";
int teljari = 0;
int leikmadurvann = 0;
int tolvavann = 0;
do {
teljari++;
String nleik = " leiki";
String tleik = " leiki";
int notandi = notandiSpilar();
int tolva = 0;
if (notandi < 21) tolva = tolvaSpilar();
if ((notandi > tolva && notandi < 21) || (tolva > 21 && notandi <= 21) || notandi == 21) {
System.out.println("\nÞú vannst");
leikmadurvann++; }
else if (tolva == notandi || tolva <= 21 || (tolva > notandi && tolva <= 21) || (notandi > 21 && tolva <= 21)) {
System.out.println("\nTölvan vann");
tolvavann++; }
if (tolvavann == 1) tleik = " leik";
if (leikmadurvann == 1) nleik = " leik";
System.out.println("\nFjöldi leikja: "+teljari);
System.out.println("Tölvan hefur unnið "+tolvavann+tleik);
System.out.println("Þú hefur unnið "+leikmadurvann+nleik);
System.out.print("\nViltu spila annan leik?");
svar = lesa.next();
} while (svar.equals ("já") || svar.equals ("ja"));
if (svar.equals ("nei")) System.out.println("\nBless");
}
public static int notandiSpilar() {
Scanner lesa = new Scanner(System.in);
String svar = "";
int summa = 0;
do {
int spil = gefaSpil();
summa = summa+spil;
if (summa == 21) break;
if (summa > 21) break;
System.out.print("Þú fékkst "+spil+" og ert samtals með "+summa+". Viltu annað spil?");
svar = lesa.next();
} while (svar.equals ("já") || svar.equals ("ja"));
System.out.println("Þú fékkst samtals "+summa+"\n");
return summa;
}
public static int tolvaSpilar() {
int summa = 0;
do {
int spil = gefaSpil();
summa = summa+spil;
System.out.println("Tölvan fékk "+spil);
} while (summa <= 16);
System.out.println("Tölvan fékk samtals "+summa);
return summa;
}
public static int gefaSpil() {
int[] spil = {1,2,3,4,5,6,7,8,9,10,10,10,10};
int numer = (int) (Math.random()*13);
int skilaspil = spil[numer];
return skilaspil;
}
}
Er samt ekki viss með gefaSpil fallið. Er þetta ekki alveg rétt hugsun? spil 10-13 gefa bara 10 stig ekki satt?
Er búinn að keyra þetta fram og aftur og virkar bara fínt. En þar sem þetta eru random tölur þá er erfitt að keyra fram allar mögulegar niðurstöður.
Síðast breytt af KermitTheFrog á Mið 06. Okt 2010 15:53, breytt samtals 1 sinni.
-
- Besserwisser
- Póstar: 3963
- Skráði sig: Fim 08. Jún 2006 18:40
- Reputation: 0
- Staðsetning: Seltjarnarnes
- Staða: Ótengdur
Re: Java hjálp...
KermitTheFrog skrifaði:Er búinn að keyra þetta fram og aftur og virkar bara fínt. En þar sem þetta eru random tölur þá er erfitt að keyra fram allar mögulegar niðurstöður.
Getur náttúrulega svindlað á því
"Knowledge is knowing that a tomato is a fruit,
wisdom is knowing not to put one in a fruit salad."
wisdom is knowing not to put one in a fruit salad."
Re: Java hjálp...
Mín $0.02:
Í main fallinu ertu með if setningu til að prenta út leikmaður/tölva vann og svo aðra til að uppfæra teljara. Skelltu því nú í sömu if setninguna. Svo skaltu ath. hvort þú þurfir elseif fyrir "tölva vann" og hvað það er sem kemur hvorki fyrir "leikmaður vann" né "tölva vann" (sér í lagi þar sem í hinni if setningunni ertu með venjulegt else).
Varðandi gefa spil dótið. Það væri auðvitað lang skemmtilegast ef þú myndir nenna að búa til stokk (eða nokkra stokka, eru ekki venjulega notaðir margir stokkar) og segja fólki nákvæmlega hvaða spil það fékk. Annars þá er þetta allt í lagi þar sem dreifingin ætti að vera jöfn. Nema náttúrulega að ás á að geta verið 1 og 11. Það þarf talsvert meiri 21 lógík til að það virki samt.
EDIT:
Ég myndi skoða það að búa til svona game object, eitthvað sem kann alla 21 lógíkina (sprunginn/ás shittið/bera saman hendur etc.)
Í main fallinu ertu með if setningu til að prenta út leikmaður/tölva vann og svo aðra til að uppfæra teljara. Skelltu því nú í sömu if setninguna. Svo skaltu ath. hvort þú þurfir elseif fyrir "tölva vann" og hvað það er sem kemur hvorki fyrir "leikmaður vann" né "tölva vann" (sér í lagi þar sem í hinni if setningunni ertu með venjulegt else).
Varðandi gefa spil dótið. Það væri auðvitað lang skemmtilegast ef þú myndir nenna að búa til stokk (eða nokkra stokka, eru ekki venjulega notaðir margir stokkar) og segja fólki nákvæmlega hvaða spil það fékk. Annars þá er þetta allt í lagi þar sem dreifingin ætti að vera jöfn. Nema náttúrulega að ás á að geta verið 1 og 11. Það þarf talsvert meiri 21 lógík til að það virki samt.
EDIT:
Ég myndi skoða það að búa til svona game object, eitthvað sem kann alla 21 lógíkina (sprunginn/ás shittið/bera saman hendur etc.)
-
Höfundur - Kóngur
- Póstar: 4273
- Skráði sig: Mán 07. Júl 2008 23:32
- Reputation: 67
- Staða: Ótengdur
Re: Java hjálp...
Eitt sem ég var að fatta, ætti Math.rand ekki að vera sinnum 12? Eða á það að vera 13? Telst núllið ekki með?
Ég lagaði kóðann aðeins. Ég er samt búinn að gera miklu meira en beðið var um í verkefninu svo þetta ætti að vera ágætt.
Ég lagaði kóðann aðeins. Ég er samt búinn að gera miklu meira en beðið var um í verkefninu svo þetta ætti að vera ágætt.
Re: Java hjálp...
KermitTheFrog skrifaði:Eitt sem ég var að fatta, ætti Math.rand ekki að vera sinnum 12? Eða á það að vera 13? Telst núllið ekki með?
Hvorugt sýnist mér.
Java doc skrifaði:public static double random()
Returns a double value with a positive sign, greater than or equal to 0.0 and less than 1.0. Returned values are chosen pseudorandomly with (approximately) uniform distribution from that range.
When this method is first called, it creates a single new pseudorandom-number generator, exactly as if by the expression
new java.util.Random
This new pseudorandom-number generator is used thereafter for all calls to this method and is used nowhere else.
This method is properly synchronized to allow correct use by more than one thread. However, if many threads need to generate pseudorandom numbers at a great rate, it may reduce contention for each thread to have its own pseudorandom-number generator.
Returns:
a pseudorandom double greater than or equal to 0.0 and less than 1.0.
See Also:
Random.nextDouble()
Þú gætir lent í því með þetta að fá 13. En þá þarf Math.random() að skila 1.0 basically þá ertu ekki að gera nóg til að hreinsa random númerið til að búa til nógu handahófskennda heiltölu á réttu bili.
Það er mun einfaldara fyrir þig að nota Random.nextInt(13). Þá færðu næstu heiltölu á hálfopna bilinu [0,13[
-
Höfundur - Kóngur
- Póstar: 4273
- Skráði sig: Mán 07. Júl 2008 23:32
- Reputation: 67
- Staða: Ótengdur
Re: Java hjálp...
dori skrifaði:Þú gætir lent í því með þetta að fá 13. En þá þarf Math.random() að skila 1.0 basically þá ertu ekki að gera nóg til að hreinsa random númerið til að búa til nógu handahófskennda heiltölu á réttu bili.
Það er mun einfaldara fyrir þig að nota Random.nextInt(13). Þá færðu næstu heiltölu á hálfopna bilinu [0,13[
Ok, kennarinn kenndi okkur að nota Math.random*13 og kötta svo aukastafina af með því að breyta henni í int.
Re: Java hjálp...
KermitTheFrog skrifaði:Ok, kennarinn kenndi okkur að nota Math.random*13 og kötta svo aukastafina af með því að breyta henni í int.
Vá, ég las ekki það sem ég vitnaði í. Math.random() er með eftirskilyrði að hann skilar double á hálfopna bilinu [0,1[ þannig að þú færð aldrei 13.
En fólk virðist almennt mæla með Random.nextInt og Random almennt. Ég veit reyndar ekki hvort er hraðvirkara, getur tékkað á því þó það skipti svosem ekki máli þannig séð (frekar hafa skýran kóða en hraðan kóða nema í einhverjum jaðartilvikum).