Jag har skapat en liten klass med en array (buffert) Om jag inte har helt fel är Math.random() precis detsamma som att använda Randomize/Rnd i VB. Alltså: Math.random() returnerar ett flyttal mellan noll och ett, t.ex 0.34. Hej, Uppdatering : buffert = (Math.random()==maxAntal) om du tycker att du har fått svar på din fråga, sätt löst på den. Så slipper man läsa tråden.Math.random() HUR ?
En dialogruta (inputData1) poppar upp och man får fylla i hur stor arrayn ska vara. Detta sparas i variabeln maxAntal.
Sen vill jag fylla denna array med slumpmässiga integer-tal. Men jag förstår inte HUR jag ska använda mig av detta "Math.random()".
Här är lite kod:
===========
import java.lang.*;
public class Sortera{
public static void main(String[] arguments){
String indata1 = JOptionPane.showInputDialog("Hur stor ska arrayn vara? ");
int maxAntal = Integer.parseInt(indata1.trim());
int [] buffert = new int [maxAntal];
buffert = (Math.random()==maxAntal); //detta fungerar ej.
}
}Sv: Math.random() HUR ?
Så för att få fram ett tal mellan 0 och 100, gör så här:
int tal;
tal=Math.random()*100; //Om Math.random() returnerar 0.34 blir tal 34
ett tal mellan 5 och 10:
tal=Math.random()*5 + 5;
Jag hoppas du förstår nu.
/Jörgen LindroosSv: Math.random() HUR ?
Är ingen Javaexpert, programmerar mes JScript, men kanske kan hjälpa dig ändå. Se även Jörgen:s inlägg om hur Random fungerar. :
<code>
import java.lang.*;
public class Sortera{
public static void main(String[] arguments){
String indata1 = JOptionPane.showInputDialog("Hur stor ska arrayn vara? ");
int maxAntal = Integer.parseInt(indata1.trim());
int [] buffert = new int [maxAntal];
int i=0;
for (i=0;i<maxAntal;i++)
buffert[i] = Math.random();
}
}
</code>Sv: Math.random() HUR ?
Ersätt "max" med dina slumptals övre gräns och "min" med den undre gränsen. Exempel : Om du vill ha tal mellan 1 och 10 så skriver du :
buffert[i] = Math.floor(Math.random()*10 + 1);
<code>
import java.lang.*;
public class Sortera{
public static void main(String[] arguments){
String indata1 = JOptionPane.showInputDialog("Hur stor ska arrayn vara? ");
int maxAntal = Integer.parseInt(indata1.trim());
int [] buffert = new int [maxAntal];
int i=0;
for (i=0;i<maxAntal;i++)
buffert[i] = Math.floor(Math.random()*(max-min+1) + min);
}
}
</code>Sv: Math.random() HUR ?
"buffert" variabeln är en array som har "maxAntal" referenser till datatypen int vad du försöker göra med denna operation är att tilldela arrayen
dvs int[] till värdet av (Math.random()==maxAntal) vilket ger ett boolskt värde(true/false) inte vad som önskas. alltså tilldelningen är inte korrekt (int[] = boolean).
Metoden Math.random() returnerar ett flyttal mellan 0 och 1 med dubbel precision (double) och du måste casta eller göra om den till en int innan du lägger in den i arrayen/buffert. Dvs så här (int) Math.random()*100 (om tal mellan 0 och 99).
för att fylla arrayen måste du stega igenom den med en ränkare (en int) då kan du använda dig av en for-loop.
ex.
for(int i=0; i<maxAntal; i++)
buffert[i] = ((int) Math.random()*maxAntal)+1;
fyller arrayen med slumpade värden mellan 1 och "maxAntal".Sv: Math.random() HUR ?