zufall
so_isses
- javascript
hi,
ich habe folgendes Problem: ich habe ein array der größe 24. jedem element im array soll zufällig eine zahl von 1 bis 12 zugeordnet werden,wobei eine zahl insgesammt nur zweimal vorkommen darf.
mein lösungsansatz:
var karte = new Array(24)
var z1
var z2=0
for(var a = 1; a <= 24; a++) {
z1 = Math.floor(Math.random() * 12) + 1
for(var b = 1; b <= a; b++) {
if (karte[b]==z1) {z2++}
}
if (z2<3) {karte[a]=z1} else{a--}
z2=0
}
wenn jemand mir helfen könnte wäre ich sehr dankbar
mfg fabian
Was ich vergessen habe zu sagen: meine lösungsansatz funktioniert nicht so, wie er sollte. :-)
Hi Fabian,
mein Lösungsansatz:
var karte=new Array(24)
var i,x,y,z
y=""
for(i=0;i<24;i++)
{
x=Math.floor(Math.random()*12)+1
if(y.IndexOf(x+".")==-1)
{
y+=x+"."
karte[i]=x
}
else
{
z=y.substr(y.IndexOf(x+"."),(y.length-y.IndexOf(x+"."))-1)
if(z.IndexOf(x+".")==-1)
{
y+=x+"."
karte[i]=x
}
else i--
}
}
Das ganze habe ich jetzt nicht mit einem Browser getestet. Der Grund liegt auf der Hand: Es sind Zufallszahlen! Die Ausführung dieses Scriptes kann also rein zufällig auch über Stunden(!) dauern, jedoch erfüllt sie Deine Vorgabe.
Gruß aus Berlin!
eddi