Java/Python/C++ hjálp...

Skjámynd

Höfundur
KermitTheFrog
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...

Pósturaf KermitTheFrog » Mán 01. Mar 2010 14:47

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"




Phanto
has spoken...
Póstar: 167
Skráði sig: Lau 07. Feb 2004 00:19
Reputation: 0
Staða: Ótengdur

Re: Java hjálp...

Pósturaf Phanto » Mán 01. Mar 2010 15:13

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.




SteiniP
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...

Pósturaf SteiniP » Mán 01. Mar 2010 15:24

prófaðu að búa til streng

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");



Skjámynd

Höfundur
KermitTheFrog
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...

Pósturaf KermitTheFrog » Mán 01. Mar 2010 15:33

Ef ég geri:

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"




Phanto
has spoken...
Póstar: 167
Skráði sig: Lau 07. Feb 2004 00:19
Reputation: 0
Staða: Ótengdur

Re: Java hjálp...

Pósturaf Phanto » Mán 01. Mar 2010 16:35

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



Skjámynd

Höfundur
KermitTheFrog
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...

Pósturaf KermitTheFrog » Mán 01. Mar 2010 17:18

Nice, takk fyrir þetta :D



Skjámynd

Höfundur
KermitTheFrog
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...

Pósturaf KermitTheFrog » Mán 12. Apr 2010 21:55

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.

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öð }




Phanto
has spoken...
Póstar: 167
Skráði sig: Lau 07. Feb 2004 00:19
Reputation: 0
Staða: Ótengdur

Re: Java hjálp...

Pósturaf Phanto » Mán 12. Apr 2010 22:14

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öð");
   }
}



Skjámynd

Höfundur
KermitTheFrog
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...

Pósturaf KermitTheFrog » Mán 12. Apr 2010 22:33

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ð.



Skjámynd

Höfundur
KermitTheFrog
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...

Pósturaf KermitTheFrog » Þri 13. Apr 2010 19:08

einkver?



Skjámynd

Höfundur
KermitTheFrog
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...

Pósturaf KermitTheFrog » Mán 19. Apr 2010 17:01

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");
  }
}



Skjámynd

Höfundur
KermitTheFrog
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...

Pósturaf KermitTheFrog » Mið 22. Sep 2010 15:56

Mig langar að spyrja ykkur að einu varðandi fylki. Ég get reiknað með

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?



Skjámynd

dori
Besserwisser
Póstar: 3606
Skráði sig: Fim 12. Feb 2009 10:46
Reputation: 142
Staða: Ótengdur

Re: Java hjálp...

Pósturaf dori » Mið 22. Sep 2010 16:18

Þú þarft að skrifa hvert upp fyrir sig. Eða nota eitthvað eins og:

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.



Skjámynd

Daz
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...

Pósturaf Daz » Mið 22. Sep 2010 17:12

eða

Kóði: Velja allt

manudir[0] = manudir[2] = manudir[4] = manudir[6] = manudir[7] = 31;



Skjámynd

intenz
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...

Pósturaf intenz » Mið 22. Sep 2010 18:24

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

Skjámynd

Höfundur
KermitTheFrog
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...

Pósturaf KermitTheFrog » Mið 22. Sep 2010 19:04

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.



Skjámynd

Daz
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...

Pósturaf Daz » Fös 24. Sep 2010 11:29

minni texti og jafnvel skiljanlegri að skrifa

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



Skjámynd

dori
Besserwisser
Póstar: 3606
Skráði sig: Fim 12. Feb 2009 10:46
Reputation: 142
Staða: Ótengdur

Re: Java hjálp...

Pósturaf dori » Fös 24. Sep 2010 11:43

Daz skrifaði:minni texti og jafnvel skiljanlegri að skrifa

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.

Þ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;
  }



Skjámynd

Höfundur
KermitTheFrog
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...

Pósturaf KermitTheFrog » Mið 06. Okt 2010 13:43

Var að forrita 21 með föllum. Finnst þetta bara nokkuð vel gert.

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.



Skjámynd

ManiO
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...

Pósturaf ManiO » Mið 06. Okt 2010 13:59

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."

Skjámynd

dori
Besserwisser
Póstar: 3606
Skráði sig: Fim 12. Feb 2009 10:46
Reputation: 142
Staða: Ótengdur

Re: Java hjálp...

Pósturaf dori » Mið 06. Okt 2010 14:06

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.)



Skjámynd

Höfundur
KermitTheFrog
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...

Pósturaf KermitTheFrog » Mið 06. Okt 2010 15:45

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.



Skjámynd

dori
Besserwisser
Póstar: 3606
Skráði sig: Fim 12. Feb 2009 10:46
Reputation: 142
Staða: Ótengdur

Re: Java hjálp...

Pósturaf dori » Mið 06. Okt 2010 15:56

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[



Skjámynd

Höfundur
KermitTheFrog
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...

Pósturaf KermitTheFrog » Mið 06. Okt 2010 16:41

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.



Skjámynd

dori
Besserwisser
Póstar: 3606
Skráði sig: Fim 12. Feb 2009 10:46
Reputation: 142
Staða: Ótengdur

Re: Java hjálp...

Pósturaf dori » Mið 06. Okt 2010 16:57

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).