Ich habe mir neulich eine Reihe von Nummern ausgedacht und mich entschlossen, die OEIS-Nummer zu überprüfen. Zu meiner großen Überraschung befand sich die Sequenz anscheinend nicht in der OEIS-Datenbank, daher habe ich beschlossen, die Sequenz nach mir zu benennen (beachten Sie, dass sich jemand anderes, der viel schlauer als ich ist, dies wahrscheinlich bereits ausgedacht hat und falls jemand das findet) Tatsächlicher Name dieser Sequenz, bitte kommentieren und ich ändere den Fragentitel). Da ich die Sequenz nirgendwo finden konnte, beschloss ich, sie nach mir zu benennen, daher "Gryphon Numbers". EDIT: Vielen Dank an @Surb, der mich darauf aufmerksam gemacht hat, dass diese Sequenz der OEIS-Sequenz A053696-1 entspricht .
Eine Gryphon-Zahl ist eine Zahl der Form , wobei sowohl als auch ganze Zahlen größer oder gleich zwei sind und die Gryphon-Folge die Menge aller Gryphon-Zahlen in aufsteigender Reihenfolge ist bestellen. Wenn es mehrere Möglichkeiten gibt, eine Gryphon-Nummer zu bilden (das erste Beispiel ist , was sowohl als auch ), wird die Nummer in der Sequenz nur einmal gezählt. Die ersten paar Gryphon-Zahlen sind: .
Deine Aufgabe:
Schreiben Sie ein Programm oder eine Funktion, die eine Ganzzahl als Eingabe empfängt und die te Gryphon-Nummer ausgibt .
Eingang:
Eine ganze Zahl zwischen 0 und 10000 (einschließlich). Sie können die Sequenz entweder als 0-indexiert oder als 1-indexiert behandeln, je nachdem, was Sie bevorzugen. Bitte geben Sie an, welches Indexsystem Sie in Ihrer Antwort verwenden, um Verwirrung zu vermeiden.
Ausgabe:
Die der Eingabe entsprechende Gryphon-Nummer.
Testfälle:
Bitte beachten Sie, dass davon ausgegangen wird, dass die Sequenz 0-indiziert ist. Wenn Ihr Programm eine 1-indizierte Sequenz annimmt, vergessen Sie nicht, alle eingegebenen Zahlen zu erhöhen.
Input: Output:
0 ---> 6
3 ---> 20
4 ---> 30
10 ---> 84
99 ---> 4692
9999 --> 87525380
Wertung:
Das ist Code-Golf , also gewinnt die niedrigste Punktzahl in Bytes.
Antworten:
Gelee , 9 Bytes
Ein vollständiges Programm, das eine (1-indizierte) Ganzzahl aus STDIN liest und das Ergebnis ausgibt.
Probieren Sie es online!
Wie?
Eine Gryphon-Zahl ist eine Zahl, die in einer Basis ausgedrückt werden kann, die kleiner ist als sie selbst, so dass alle Ziffern Einsen sind, mit Ausnahme der niedrigstwertigen Ziffer, die eine Null ist. Beispielsweise:
Dieses Programm nimmt
n
, startetv=0
und testet diese Eigenschaft und erhöht sie,v
bis esn
solche Zahlen findet, und gibt dann die letzte aus.Um eine Basiszahl zu testen−1 . (Beachten Sie, dass
b
, subtrahiert sie eine von jeder Ziffer, konvertiert von der Basisv
und prüft dann, ob das Ergebnisb
weniger alsv
)quelle
MATL ,
1613 Bytes1-basiert.
Probieren Sie es online!
Erläuterung
Betrachten Sie die Eingabe
n = 3
als Beispiel.Die in Schritt (*) erhaltene Matrix enthält möglicherweise wiederholte Gryphon-Zahlen. Insbesondere enthält es
n
verschiedene Gryphon-Nummern in seiner ersten Reihe. Dies sind nicht unbedingt dien
kleinsten Gryphon-Zahlen. Der linke untere Eintrag2+2^+···+2^n
überschreitet jedoch den rechten oberen Eintragn+n^2
und daher überschreiten alle Nummern in der letzten Zeile die in der ersten Zeile. Dies impliziert, dass das Erweitern der Matrix nach rechts oder unten keine Gryphon-Zahl beitragen würde, die niedriger ist als die niedrigstenn
Zahlen in der Matrix. Daher enthält die Matrix garantiert dien
kleinsten Gryphon-Zahlen. Folglich ist dasn
niedrigste eindeutige Element die Lösung.quelle
Haskell , 53 Bytes
Probieren Sie es online!
Die Antwort ist eine (nullindexierte) Indexfunktion in dieser Liste, die in Haskell als bezeichnet wird
(list!!)
.Warum ist das
a^y+n==n*a+a
richtig?Aus der Formel zur Summierung eines geometrischen Verlaufs :
a^y+n=n*a+a
Sucht bis
n
genug?quelle
Python 3.8 (Vorabversion) ,
9892897871 ByteProbieren Sie es online!
0-indiziert. Hier muss eine Ganzzahldivision verwendet werden, da f (10000) überläuft.
-6 Bytes dank Jonathan Allan
-3 Bytes dank ArBo. Ich hätte fast getan, was er mir vorschlug, aber ich habe versucht, etwas zu verwenden,
{*(...)}
was sowieso keinen Platz sparte-11 bytes dank mathmandan
-7 Bytes dank ArBo
Mathematischer Gültigkeitsnachweis
Verwenden der 0-Indizierung für diesen Beweis, obwohl die mathematische Konvention 1-indiziert ist.
quelle
f=
ist unnötig undlambda n,r=range:
wird 4 weitere sparen ( wie so )set()
f=
Link auch aus dem TIO entfernen, indem Sie ihn in den Header einfügen, wie im TIO meines 89-BytesJ ,
3532 Bytes-3 Bytes dank FrownyFrog
Probieren Sie es online!
Erklärung ist die gleiche wie im Original. Verwendet einfach eine explizite Form, um Bytes zu speichern, indem das Mehrfache entfernt wird
@
.Originalantwort, stillschweigend, mit Erklärung: 35 Bytes
Probieren Sie es online!
Ähnlich wie Luis Mendo Ansatz haben wir eine „Power - Tabelle“ (wie ein mal Tabelle) mit oberen Reihe erstellen
2 3 ... n
und linke Spalte1 2 ... n
ergibt:^~/ >:
erstellt die Tabelle und1+i.@+&2
erstellt die1... n
Sequenzen, und wir fügen+&2
der Eingabe 2 ( ) hinzu, um sicherzustellen, dass immer genügend Elemente vorhanden sind, um eine Tabelle auch für 0- oder 1-Eingaben zu erstellen.Nachdem wir die Tabelle oben haben, ist die Lösung trivial. Wir scannen einfach die Zeilen
+/\
und entfernen dann die erste Zeile, reduzieren, nehmen eindeutige und sortieren/:~@~.@,@}.
. Schließlich{
verwendet den ursprünglichen Eingang Index in dieses Ergebnis die Antwort zu erzeugen.quelle
Gaia , 18 Bytes
Probieren Sie es online!
1-basierter Index.
Dies ist eine ziemlich traurige Antwort mit einer langen Nase:
)┅:
Es wünscht sich wahrscheinlich, es könnte weiter abgespielt werden.Kopiert den von Luis Mendo angegebenen Algorithmus
quelle
R ,
6562 Bytes-1 Byte danke an Giuseppe.
Probieren Sie es online!
1-indiziert.
Beachten Sie, dass
sort(unique(...))
dies nicht funktionieren würde, daunique
es eindeutige Zeilen der Matrix und keine eindeutigen Einträge geben würde. Mitunique(sort(...))
funktioniert , weilsort
Konvertiten zum Vektor.quelle
t
unddiffinv
ist 64 Bytesdiffinv
. I golfed weitere 2 Bytes nach unten durch den Ersatz[-1:-2,]
mit[3:n,]
.JavaScript (ES7), 76 Byte
1-indiziert.
Probieren Sie es online!
JavaScript (ES7), 89 Byte
1-indiziert.
Probieren Sie es online!
quelle
Wolfram Language (Mathematica) , 51 Byte
Probieren Sie es online!
1-indiziert
-8 Bytes von @attinat
quelle
Kohle , 36 Bytes
Probieren Sie es online! Link ist eine ausführliche Version des Codes. 1-indiziert. Verwendet den Algorithmus von Luis Mendo. Erläuterung:
Erstelle einn n
Drucken Sie die niedrigste verbleibende Gryphon-Nummer.
quelle
Japt , 23 Bytes
Lieber Jebus! Entweder habe ich das Golfen wirklich vergessen oder der Alkohol fordert endlich seinen Tribut!
Kein direkter Hafen von Jonathans Lösung, aber sehr inspiriert von seiner Beobachtung.
Versuch es
quelle
05AB1E , 12 Bytes
0-indiziert
Erläuterung:
quelle