Ihre Aufgabe ist es, ein Eingabe- n
und Ausgabeelement n
der Rommé-Sequenz zu übernehmen, eine Sequenz, die ich erstellt habe (ein Blick auf OEIS wird Ihnen nicht helfen).
Definition
Jedes Element der Rommé-Sequenz besteht aus einer Reihe wahrer oder falscher Werte. Bsp .: [true, false]
.
Die Schritte zum Erstellen eines Mitglieds der Rommé-Sequenz sind recht einfach:
- Beginnen Sie mit dem ersten Index
[]
(dies ist Element 0). - Setzen Sie den Falsey ganz links auf "Wahr". Wenn keine zu ändernden Falseys vorhanden sind, erhöhen Sie die Länge der Liste um 1 und setzen Sie alle Mitglieder der neuen Liste auf Falsey.
- Wiederholen Sie Schritt 2, bis Sie das Element erreicht haben
n
.
Beispiel
Definieren wir unsere Funktion als rummy(int n)
(Stuff in {}
ist ein Schritt, um zur Antwort zu gelangen):
>>> rummy(5)
{[]}
{[false]}
{[true]}
{[false, false]}
{[true, false]}
[true, true]
Regeln
- Es gelten Standardlücken.
- Muss für Eingaben 0 über die obere Zahlengrenze Ihrer Sprache funktionieren.
- Sie können auf jede Weise ausgeben, die Sie für richtig halten, vorausgesetzt, es ist klar, dass es sich bei der Ausgabe um eine Reihe von Wahrheiten / Falschheiten handelt.
Trivia
Ich nenne dies die "Rommé-Sequenz", weil sie ab Index 2 die Mengen definiert, die Sie in jeder Runde von Progressive Rommé benötigen , in der Falsey ein Buch und Truthy ein Lauf ist.
Testfälle
>>> rummy(0)
[]
>>> rummy(1)
[false]
>>> rummy(6)
[false, false, false]
>>> rummy(20)
[true, true, true, true, true]
>>> rummy(1000)
[true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false]
code-golf
math
array-manipulation
Addison Crump
quelle
quelle
1
zu11
, erhalten Sie000
statt100
. ; P1*0*
.Antworten:
JavaScript ES6,
949272706664 Bytes6 Bytes gespart dank Neil!
Ich glaube nicht, dass man mehr Golf spielen kann. Zumindest mit den Gleichungen.
Erläuterung
Dies sind zwei Hauptgleichungen (
n
wird eingegeben):Dies gibt die Gesamtgröße des Ausgabearrays an. In meinem Programm habe ich
>>1
stattdessen(...)/2
dasselbe verwendet, da das erste Bit in der Binärdatei den Wert 2 hat. Wird es verschoben, führt dies zufloor(.../2)
Dies ist die Menge an
true
s, die es geben wird.a
ist das Ergebnis des vorherigen Ausdrucks.Das macht die Syntax:
Dieser Code generiert ein Array mit Bereich
[0, n)
in dieser Antwortn
ist die erste Gleichung..map((_,l)=>l<n)
Dies durchläuft den obigen Bereich undl
ist die Variable, die das aktuelle Element im Bereich enthält. Wenn der Gegenstand weniger als die Anzahl der Wahrheiten ist, die sie sind (bestimmt durch die zweite Gleichung), wird er zurückgegebentrue
, andernfallsfalse
.quelle
>>1
anstelle von/2|0
. Verwenden Sie(_,l)=>
anstelle von.keys()
.Array.from()
?, Füllen oder etwas anderes?[...Array(a)].map((_,l)=>)
was meiner Meinung nach etwas kürzer ist, aber ein guter Fang,()
wenn>>1
ich einige der s beim Umschalten entferne , das habe ich nicht bemerkt!a*-~a/2
; Ich weiß nicht, warum ich vorher nicht daran gedacht habe.Python, 51 Bytes
Gibt eine Liste mit 1 und 0 aus.
quelle
Pyth, 8 Bytes
Probieren Sie es online aus: Demo oder Test Suite
Dies ist exponentiell langsam.
Erläuterung:
quelle
Jelly ,
1311 BytesDer Code funktioniert nicht in der neuesten Version von Jelly, bevor die Herausforderung veröffentlicht wurde, aber in dieser Version , die der Herausforderung vorausgeht, hat er funktioniert .
Indizes sind 1-basiert. Probieren Sie es online! (dauert einige Sekunden) oder überprüfen Sie mehrere Eingaben gleichzeitig .
Wie es funktioniert
quelle
05AB1E, 27 Bytes
Mal sehen, ob ich noch mehr Golf spielen kann und morgens eine Erklärung hinzufügen.
Probieren Sie es online aus
quelle
Java,
117 bis110 Byteshabe meinen eigenen Booleschen Typ erstellt, wodurch ich 7Byte einsparen konnte
quelle
Python 2,
6963 BytesTeste es auf Ideone .
quelle
Python 2, 61 Bytes
Löst nach n = j · (j + 1) / 2 auf . Die Eingabe erfolgt aus stdin.
Beispielnutzung
Demo .
quelle
APL (Dyalog Extended) , 21 Byte SBCS
Probieren Sie es online!
quelle