Wir wissen, dass f ein Polynom mit nicht negativen ganzzahligen Koeffizienten ist.
Gegeben f (1) und f (1 + f (1)) geben f zurück . Sie können f als eine Liste von Koeffizienten, ein ASCII-formatiertes Polynom oder ähnliches ausgeben .
Beispiele:
f(1) f(1+f(1)) f
0 0 0
1 1 1
5 75 2x^2 + 3
30 3904800 4x^4 + 7x^3 + 2x^2 + 8x + 9
1 1073741824 x^30
f(1)
und erhalten könnenf(1+f(1))
?Antworten:
Gelee , 3 Bytes
Probieren Sie es online!
Gibt das Polynom als Liste von Koeffizienten zurück.
Da wir wissen, dass das Polynom nicht negative ganzzahlige Koeffizienten hat, kann f (b) durch die Definition einer Basis als "die Koeffizienten des Polynoms, die als Stellen der Basis b genommen werden" interpretiert werden . Dies unterliegt der Bedingung, dass keiner der Koeffizienten b überschreitet oder gleich ist , aber wir wissen, dass b um eins größer ist als die Summe der Koeffizienten (die f (1) ist ).
Das Programm inkrementiert einfach das erste Argument (
‘
), um 1 + f (1) zu erhalten , und ruft dann das Basisumwandlungsatom (b
) mit dem ersten Argument als Basis und dem zweiten Argument als Zahl auf (wobei@
die Reihenfolge der Argumente vertauscht wird). da in derb
Regel die Nummer zuerst und die Basis Sekunde nimmt).Dies war eine ziemlich clevere Herausforderung. danke orlp!
quelle
Mathematica,
2928 BytesVielen Dank an JungHwan Min für das Speichern von 1 Byte! (ironischerweise mit a
Max
)Reine Funktion, die zwei nichtnegative Ganzzahlen verwendet und eine Liste von (nichtnegativen Ganzzahl-) Koeffizienten zurückgibt.
#2~IntegerDigits~(#+1)
wäre der gleiche Algorithmus wie in Doorknobs Gelee-Antwort ; LeiderIntegerDigits
drosselt Mathematica, wenn die Basis gleich 1 ist, weshalb zusätzliche Bytes erforderlich sindMax[...,2]
.quelle
Python 2 , 38 Bytes
Probieren Sie es online!
gibt durch Zeilenumbruch getrennte Koeffizienten aus
Beispielausgabe für
30, 3904800
:=>
9*x^0 + 8*x^1 + 2*x^2 + 7*x^3 + 4*x^4
quelle
VBA, 75 Bytes
Wenn es automatisch formatiert wird, sieht es so aus:
Der
\
Betreiber ist eine Bodenteilungquelle
AHK , 63 Bytes
AutoHotkey weist den eingehenden Parametern die Nummern 1-n als Variablennamen zu. Es verursacht einige Probleme, wenn Sie versuchen, diese in Funktionen zu verwenden, da es denkt, dass Sie die Literalzahl 1 anstelle der Variablen mit dem Namen 1 bedeuten . Die beste Lösung, die ich finden kann, besteht darin, sie verschiedenen Variablen zuzuweisen.
quelle
Java, 53 Bytes
Gibt eine Liste von Koeffizienten aus. Vielen Dank an Ovs für die Mathematik.
Der Ausdruck muss a zugewiesen
Function<Integer, IntConsumer>
und aufgerufen werden, indem zuerstapply
die Funktion und dannaccept
dieint
. Für Java 9 sind keine Importe erforderlichjshell
:quelle
Common Lisp, 87 Bytes
Ungolfed:
quelle
C #, 62 Bytes
quelle