22. januar 2004 - 14:56
Der er
9 kommentarer og 1 løsning
"Blande" en array
Jeg har en array med følgende: @array = (1,1,1,1,0,0,0,0) Indholdet vil jeg gerne blandet tilfældigt og den nye talrækkefølge skal så lægges ind i en ny array. F.eks. før: 1,1,1,1,0,0,0,0 efter: 0,1,1,0,1,0,0,1
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
22. januar 2004 - 15:08
#1
#!/bin/perl @array = (1,1,1,1,0,0,0,0) ; $lgd = $#array; for ($i=0; $i<$lgd;$i++) { $j=int(rand($lgd)); push @newary, $array[$j]; } print @newary;
22. januar 2004 - 15:09
#2
der er naturligvis muligheden for at rand giver samme tal flere gange og derfor ikke virker korrekt.
22. januar 2004 - 15:10
#3
hmm .. det gør den desværre.
22. januar 2004 - 15:11
#4
Ja, det har jeg lige opdaget :(
22. januar 2004 - 15:13
#5
Det må være sådan, at rand vælger en element ud fra det og derefter splicer man den, så pre-arrayet bliver efterhånden mindre og mindre?
22. januar 2004 - 15:18
#6
in situ shuffling: @array = (1,1,1,1,0,0,0,0); for ($i=0;$i<=$#array;$i++) { $a=int(rand($#array+1)); $tmp=$array[$i]; $array[$i]=$array[$a]; $array[$a]=$tmp; } for ($i=0;$i<=$#array;$i++) { print "$i er $array[$i]\n"; }
22. januar 2004 - 15:19
#7
Erik, læg et svar ;-)
22. januar 2004 - 15:24
#8
Tak, samler ikke på point.
23. januar 2004 - 08:25
#9
OK - men så tak for hjælpen
04. februar 2004 - 13:59
#10
Lukker
Kurser inden for grundlæggende programmering