| (Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI... |
Diskussion: array mischen... im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige hi, Ich suche ne möglichst effiziente Funktion zum mischen von Arrays... Durch Google bin ich auf fisher_yates_shuffle gestoßen, eider ...
![]() |
| | #1 (permalink) |
![]() Registriert seit: 06.01.07 ![]() Likes: 0 | Anzeige hi, Ich suche ne möglichst effiziente Funktion zum mischen von Arrays... Durch Google bin ich auf fisher_yates_shuffle gestoßen, eider gibt mir diese funktion immer "0" zurück/aus... Ich hab einen Array mit mehr oder weniger sortierten Elementen. Diese möchte ich jetzt einfach so effizient wie möglich durchmischen... |
| | |
| | #2 (permalink) |
| Moderator ![]() Registriert seit: 30.09.06 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 442 | Ich würde das über einen zufälligen Array-Index lösen. Etwa in der Art: Code: my $arraysize = @array1;
foreach(@array1) {
$randval = rand($arraysize);
$array2[$randval] = $_;
}
__________________ Mein Blog - Mein Job - Diaspora Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund. Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+ |
| | |
| HaBOT | - Anzeige - |
| |
| | #3 (permalink) |
![]() Registriert seit: 06.01.07 ![]() Likes: 0 | Dadurch gehen doch aber Einträge verloren. Du lässt es ja nur "$arraysize"-mal durchlaufen. Es ist aber nicht gesagt dass währen dieser Durchläufe alle Elemente von $array1 durch "rand($arraysize)" erfasst werden!? (kann es grad net testen da meine VM irgendwie tot ist...) [ EDIT: ] sorry denkfehler ^^ |
| | |
| | #4 (permalink) |
| Moderator ![]() Registriert seit: 30.09.06 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 442 | Deswegen sagte ich ja, daß du noch eine Überprüfung einbauen mußt, damit kein Element doppelt beschrieben wird. Dadurch dürfte dann eigentlich nichts verloren gehen.
__________________ Mein Blog - Mein Job - Diaspora Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund. Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+ |
| | |
| | #5 (permalink) |
| Träger des silbernen Seepferdchens ![]() Registriert seit: 24.04.02 ![]() Likes: 9 | Code: #!/usr/bin/perl -wT
use strict;
sub fisher_yates_shuffle
{
my $array = shift;
my $i;
for ($i = @$array; --$i;)
{
my $j = int rand($i+1);
next if $i == $j;
@$array[$i,$j] = @$array[$j,$i];
}
}
my @array = qw(Eins Zwei Drei Vier Fuenf);
fisher_yates_shuffle(\@array);
print foreach (@array);
__________________ Diese Zeile ist reserviert für Clark Kent. |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| php curl array string zu array parsen | b4ck | (Web-) Design und webbasierte Sprachen | 5 | 12.12.07 17:11 |
| zeichenreihe mischen c++ | Halpha | Code Kitchen | 20 | 03.08.06 19:08 |
| C int array[n] zu x int ??? | NeoN | Code Kitchen | 11 | 25.04.04 20:38 |
| Capture von MPEGS AVI'S & CO sowie mischen ? | connect | Music- & Filmbox | 1 | 11.03.04 12:29 |
| Ist verschlüsseln durch Mischen sicher? | as3jg | Cryptography & Encryption | 21 | 15.12.03 21:30 |