Sie müssen ein Array mit jeder Zahl von 0-n
inklusive füllen . Es sollten keine Nummern wiederholt werden. Sie müssen jedoch in zufälliger Reihenfolge sein.
Regeln
Alle Standard- Code-Golfregeln und Standard-Lücken sind verboten
Das Array muss pseudozufällig generiert werden. Jede mögliche Permutation sollte die gleiche Wahrscheinlichkeit haben.
Eingang
n
in irgendeiner Weise in der I / O-Post auf Meta erlaubt.
Ausgabe
Die Reihe von Zahlen, die von 0-n
inclusive verwürfelt wurden .
Antworten:
Perl 6 , 14 Bytes
Versuch es
Erweitert:
quelle
05AB1E , 3 Bytes
Probieren Sie es online!
quelle
Pyth, 3 Bytes
Demonstration
.S
ist mischen. Implizit wird eine Ganzzahln
in den Bereich umgewandelt[0, 1, ..., n-1]
.h
ist+1
, und die Eingabe wird implizit übernommen.quelle
R , 16 Bytes
liest aus
stdin
.sample
zufällige Abtastungen vom Eingabevektor, die eine (Pseudo-) Zufallssequenz zurückgeben.Probieren Sie es online!
quelle
Gelee , 3 Bytes
Probieren Sie es online!
Erklärung:
Alternative Lösung, 3 Bytes
Erläuterung:
Probieren Sie es online!
quelle
Python 2 , 51 Bytes
Probieren Sie es online!
Es gibt,
random.shuffle()
aber es modifiziert das Argument, anstatt es zurückzugeben ...quelle
random.shuffle
lambda n:shuffle(range(n+1))
Würde zum Beispiel die Ausgabe nirgendwo schreiben.PHP, 42 Bytes
Probieren Sie es online!
quelle
Bash,
1811 BytesProbieren Sie es online!
quelle
Mathematica, 24 Bytes
quelle
MATL , 4 Bytes
Probieren Sie es online!
Erläuterung
quelle
Brachylog , 2 Bytes
Probieren Sie es online!
Erläuterung
quelle
Japt , 4 Bytes
Probieren Sie es online aus
quelle
öx
wäre genug, bis ich den "inklusive" Teil bemerkte. (Sie könnten diex
übrigens durch fast alles andere ersetzen)76 Bytes
Dies gibt eine IOrderedEnumerable zurück, ich hoffe, das ist in Ordnung, oder ich brauche noch ein paar Bytes für eine .ToArray ()
quelle
CJam ,
76 BytesDank Erik the Outgolfer wurde 1 Byte entfernt .
Dies ist ein anonymer Block (Funktion), der eine Ganzzahl aus dem Stapel entnimmt und durch das Ergebnis ersetzt. Probieren Sie es online!
Erläuterung
quelle
{),mr}
1 Byte nicht kürzer?Java 8,
11411197 Bytes-3 Bytes und Bugfix dank @ OlivierGrégoire .
-4 Bytes dank @Jakob .
-10 Bytes durch Entfernen
.toArray()
.Erläuterung:
Probieren Sie es hier aus.
quelle
n
. Fix und Golf:for(n++;--n>=0;l.add(n));
. Außerdem muss kein Array zurückgegeben werden. Array und Liste sind in den meisten Sprachen gleich. Geben Sie die Liste zurück.>
soll sein>=
.Stack
anstelle von aVector
und ändere deine Schleife auffor(;n>=0;l.add(n--));
. Und die Rückgabe von ajava.util.List
ist definitiv in Ordnung.Ohm , 2 Bytes
Probieren Sie es online!
quelle
Pyth, 4 Bytes
Probieren Sie es hier aus!
quelle
.S
mit einem ganzzahligen Argument ist das gleiche wie.SU
, und[0..n]
kann als codiert werdenUh
, so dass Sie verwenden können.SUh
, was dann wird.Sh
.C 75 Bytes
Rekursive Funktion, die vom Ende des Arrays beim Eingang initialisiert und beim Ausgang mit einem zufälligen Element vor diesem ausgetauscht wird.
quelle
n > 98
?a
in eine para die Regel mehr zu passen?Holzkohle , 33 Bytes
Probieren Sie es online! Link ist eine ausführliche Version des Codes.
Anscheinend sind 17 Byte erforderlich, um ein Element aus einer Liste in Charcoal zu entfernen.
Bearbeiten: Heutzutage sind nur drei Bytes erforderlich, vorausgesetzt, Sie möchten alle Vorkommen des Elements aus der Liste entfernen. Dies und andere Änderungen an der Holzkohle reduzieren die Antwort auf 21 Byte: Probieren Sie es online aus!
quelle
APL (Dyalog) , 5 Bytes
Probieren Sie es online!
Angenommen
⎕IO←0
, das ist auf vielen Rechnern Standard.Erläuterung
⊢
das richtige argument1+
addiere 1 dazu?⍨
generiere die Zahlen 0 ..1+⊢
-1 und teile sie zufällig in ein Array ein, so dass sich keine zwei Zahlen wiederholenquelle
q / kdb + 11 Bytes
Lösung:
Beispiel:
Erläuterung:
Verwenden Sie den
?
Operator mit einer negativen Eingabe, um die vollständige Liste0->n
ohne Duplikate zu erhalten:quelle
TI-83 BASIC, 5 Bytes (langweilig)
Ja, ein eingebauter.
randIntNoRep(
ist ein Zwei-Byte-Token undAns
ein Byte.Mehr Spaß, 34 Bytes:
Direkt von tibasicdev . Wahrscheinlich golfen, aber ich habe noch nichts gefunden.
Was dies bewirkt: Sortiert ein zufälliges Array und verschiebt Elemente des zweiten Arguments (
L₁
hier) auf die gleiche Weise wie die entsprechenden Elemente.quelle
JavaScript (ES6), 51 Byte
quelle
f(5)
10 Mal versucht und5
war jedes Mal eines der letzten beiden Dinge.1,5,4,0,2,3
& bekommen1,0,2,5,3,4
. EDIT: Und noch ein paar prnt.sc/fe0goef(5)
Führen Sie einfach einen Schnelltest durch, der 1e5 Mal ausgeführt wird und die durchschnittliche Position jeder Zahl in den Ergebnissen ermittelt. Das resultierende Array war[ 1.42791, 1.43701, 2.00557, 2.6979, 3.3993, 4.03231 ]
, also glaube ich nicht, dass es einheitlich ist. ( code )n=>(a=[...Array(n).keys(),n++]).reduce((a,v,i)=>([a[i],a[j]]=[a[j=n*Math.random()|0],v],a),a)
?random()
ist nicht einheitlich. Siehe (zum Beispiel) en.wikipedia.org/wiki/BrowserChoice.eu#CriticismAceto ,
151416 BytesDrücken Sie die Null auf den Stapel, lesen Sie eine Ganzzahl, konstruieren Sie einen Bereich und mischen Sie ihn:
Setzen Sie eine Fangmarke, testen Sie die Länge für 0 und beenden Sie (in diesem Fall):
Anderenfalls geben Sie den Wert und eine neue Zeile aus und kehren zum Längentest zurück:
(Ich musste den Code ändern, weil mir klar wurde, dass ich die Frage falsch verstanden und einen Bereich von 1-n und nicht von 0-n erstellt habe.)
quelle
Go, 92 bytes
Mostly losing to the need to seed the PRNG.
Try it online!
quelle
Ruby, 20 bytes
->n{[*0..n].shuffle}
quelle
8th,
423634 bytesCode
SED (Stack Effect Diagram) is
n -- a
Usage and example
quelle
Javascript (ES6), 68 bytes
Creates an array of form
Then sorts it and returns the last elements in the new order
quelle
J, 11 Bytes
Explanation:
Examples:
quelle
Tcl, 90 bytes
Try it online!
Tcl, 96 bytes
Try it online!
quelle