Gegebene positive ganze Zahl ist n < 10
, schaffen eine 2 - dimensionale Matrix , wobei jede Lage mit der gefüllt ist x
und y
Index (beginnend von oben links).
Beispielsweise:
Eingabe: 2
00 10
10 11
Eingabe: 3
00 10 20
01 11 21
02 12 22
Sobald das Raster erstellt ist, füllen Sie jeden Index nach dem Zufallsprinzip. Dies kann mit einem 'x' oder einer anderen Möglichkeit erfolgen, um anzuzeigen, dass ein Punkt gefüllt wurde.
Sie bestimmen, welche Stelle gefüllt werden soll, indem Sie zufällig Indizes generieren, um die Matrix zu füllen. Sie können nur n ^ 2 Mal füllen, sodass Sie nicht so oft füllen können, wie Sie möchten, bis die Matrix vollständig gefüllt ist. Am Ende muss die Matrix gefüllt sein, sodass Sie einige Arbeiten ausführen müssen, um sicherzustellen, dass Sie die Zufallszahlen überprüfen, die Sie zum Füllen verwenden, um sicherzustellen, dass die Stelle noch nicht gefüllt ist.
Nach jeder Füllung aktualisieren oder drucken, um den Fortschritt der Füllungsiterationen anzuzeigen.
Beispiel zum Füllen:
Eingabe: 2
00 10
01 11
00
wird zufällig ausgewählt:
XX 10
01 11
01
wird zufällig ausgewählt:
XX 10
XX 11
00
wird zufällig ausgewählt, aber da es bereits ausgewählt wurde, wählt ein Re-Roll 10
:
XX XX
XX 11
11
wird zufällig ausgewählt:
XX XX
XX XX
Drucken Sie die Zufallszahlen nicht so aus, wie ich visuell sehen sollte, welcher Index ausgewählt wurde. Damit meine ich nicht drucken " 11
wird zufällig ausgewählt:". Es ist hier zur Erkundung.
Da dies Code-Golf ist, gewinnt der kürzeste Code.
Viel Spaß und viel Spaß beim Golfen!
n>= 10
möglich (Sie müssen anfangen, über die maximale Länge Bescheid zu wissen, um dann führende Nullen richtig auszufüllen). Die Füllung für diesen Fall ist jeweils ein Index, nicht jeweils eine Ziffer, oder?Antworten:
05AB1E , 29 Bytes
Probieren Sie es online aus!
Leerzeichen, das als Zeichen für die entfernten Zahlen ausgewählt wurde (da es gut aussieht), aber es kann durch ein beliebiges Zeichen ersetzt werden, ohne die Anzahl der Bytes zu beeinflussen.
Erläuterung
quelle
Pip ,
41403836 Bytes35 Byte Code, +1 für das
-S
Flag.Nimmt Eingaben vom cmdline-Argument entgegen. Wird durch Leerzeichen ersetzt (jedes andere Zeichen ist für +1 Byte möglich). Gibt aufeinanderfolgende Iterationen aus, die durch einen einzelnen Zeilenumbruch getrennt sind (was legal ist, aber das Lesen etwas erschweren kann).Probieren Sie es online aus!
Alle Arten von schmutzigen Tricks in diesem.Kürzere Version hat weniger schmutzige Tricks. : ^ (Erklärung:quelle
n>=10
funktioniert die Randomisierung nicht richtig, aber sie trifft immer noch den Auftrag. Bei Zahlen größer als 10 wird nur wo entferntindex_i==index_j
. Irgendeine Idee hinter dem Grund, warum das so wäre?(mi@##Pmi@0)
Teil ausgewählt werden. Ich habe mehrere byte-reduzierende Hacks eingefügt, die davon abhängen, dass die Indizes einstellig sind.##
, verstanden. Gute Verwendung von Annahmen. Danke für die Erklärung haha.Groovy (202 Bytes)
Dieses spezielle Ausgabeformat hat meine Byteanzahl wirklich durcheinander gebracht, aber meh.
Versuch es: https://groovyconsole.appspot.com/edit/5171951567896576 (+9 Byte für einen schöneren Druck)
Ungolfed:
Ausgabebeispiel:
quelle
4x4
Quadrat. Das Quadrat selbst ist nur durch Zeilenumbrüche getrennt, und jede Iteration ist durch Zeilenumbrüche getrennt, sodass die Ausgabe irgendwie zusammen läuft.R,
848174 BytesVerwendet jetzt eine Indizierung anstelle einer Nullindizierung. Dank @Billywob wurden 7 Bytes entfernt.
Beispielausgabe für N = 3
quelle
replace
:for(i in sample(N^2)){m[i]="XX";print(m)}
AWK, 229 Bytes
Ich habe ein paar Bytes hinzugefügt, um der Ausgabe einen Abstand zwischen den einzelnen Matrizen zu geben.
Hinweis: Um es zwischen den Läufen zufälliger zu machen, kann ein Aufruf von
srand()
für 7 zusätzliche Bytes hinzugefügt werden.Verwendung und Ausgabe nach dem Speichern des obigen Codes in
FILE
:quelle
PHP, 172 Bytes
Nervenzusammenbruch
quelle
Python 2, 190 Bytes
quelle