Wir definieren eine Karte als eine Reihe von Schlüssel-Wert-Paaren. Für diese Herausforderung müssen Sie jeden der Werte einem zufällig ausgewählten Schlüssel zuweisen.
- Sie müssen die Werte zufällig mischen und die resultierende Karte ausgeben. Dies bedeutet, dass wir jedes Mal, wenn wir Ihr Programm ausführen, die Möglichkeit haben, eine andere Ausgabe zu erhalten
- Jede mögliche Permutation der Werte muss eine Wahrscheinlichkeit ungleich Null aufweisen.
- Alle Originalschlüssel und Originalwerte müssen im resultierenden Array erscheinen. Wiederholte Werte müssen im resultierenden Array gleich oft vorkommen.
Zum Beispiel, wenn Ihre Karte war:
[0:10, 1:10, 5:5]
Alle folgenden müssen eine Chance haben zu erscheinen:
[0:10, 1:10, 5:5] (original map)
[0:10, 1:5, 5:10]
[0:10, 1:10, 5:5] (technically the same map, but I swapped the two tens)
[0:10, 1:5, 5:10]
[0:5, 1:10, 5:10]
[0:5, 1:10, 5:10]
Akzeptable Ein- / Ausgänge:
- Die Mutterkarte Ihrer Sprachen
- Sie können ein Array von Schlüssel-Wert-Paaren eingeben. Sie dürfen nicht zwei Arrays eingeben, eines mit Schlüsseln, das andere mit Werten.
- Sie können eine Zeichenfolgendarstellung der oben genannten verwenden
- Wenn Sie ein Array oder eine Karte eingeben, können Sie das ursprüngliche Objekt ändern, anstatt es zurückzugeben
- Der Eingabetyp muss mit dem Ausgabetyp übereinstimmen
- Wenn Sie ein Array eingeben, muss die Reihenfolge der Schlüssel beibehalten werden.
- Sie können davon ausgehen, dass die Schlüssel eindeutig sind, aber Sie können nicht davon ausgehen, dass die Werte eindeutig sind.
Dies ist ein Code-Golf , also antworte so kurz wie möglich
[k, v]
oder wären [v, k]
sie akzeptabel?
[k, v]