Nous savons que f est un polynôme à coefficients entiers non négatifs.
Étant donné f (1) et f (1 + f (1)), renvoyer f . Vous pouvez afficher f sous la forme d'une liste de coefficients, d'un polynôme au format ASCII ou similaire.
Exemples:
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)
etf(1+f(1))
?Réponses:
Gelée , 3 octets
Essayez-le en ligne!
Renvoie le polynôme sous forme de liste de coefficients.
Puisque nous savons que le polynôme a des coefficients entiers non négatifs, f (b) peut être interprété comme «les coefficients du polynôme, pris comme chiffres de base b », par la définition d'une base. Ceci est soumis à la condition qu'aucun des coefficients ne dépasse ou n'est égal à b , mais nous savons que, parce que b est supérieur à la somme des coefficients (qui est f (1) ).
Le programme incrémente simplement le premier argument (
‘
) pour obtenir 1 + f (1) , puis appelle l'atome de conversion de base (b
) avec le premier argument comme base et le deuxième argument comme nombre (en utilisant@
pour permuter l'ordre des arguments, carb
prend généralement le numéro en premier et la seconde en base).C'était un défi assez intelligent; merci orlp!
la source
Mathematica,
2928 octetsMerci à JungHwan Min pour avoir économisé 1 octet! (ironiquement, avec un
Max
)Fonction pure prenant deux entiers non négatifs et renvoyant une liste de coefficients (entiers non négatifs).
#2~IntegerDigits~(#+1)
serait le même algorithme que dans la réponse Jelly de Doorknob ; malheureusement, MathematicaIntegerDigits
s'étouffe lorsque la base est égale à 1, d'où le besoin d'octets supplémentairesMax[...,2]
.la source
Python 2 , 38 octets
Essayez-le en ligne!
affiche des coefficients séparés par une nouvelle ligne
Exemple de sortie pour
30, 3904800
:=>
9*x^0 + 8*x^1 + 2*x^2 + 7*x^3 + 4*x^4
la source
VBA, 75 octets
Lorsqu'il formate automatiquement, il ressemble à ceci:
L'
\
opérateur est une division au solla source
AHK , 63 octets
AutoHotkey attribue les nombres 1-n comme noms de variables pour les paramètres entrants. Cela provoque des problèmes lorsque vous essayez d'utiliser ces fonctions, car il pense que vous voulez dire le nombre littéral 1 au lieu de la variable nommée 1. La meilleure solution de contournement que je puisse trouver est de les affecter à différentes variables.
la source
Java, 53 octets
Produit une liste de coefficients. Merci aux ovs pour les maths.
L'expression doit être affecté à un
Function<Integer, IntConsumer>
et a appelé d'abordapply
ing la fonction,accept
ing laint
. Aucune importation n'est nécessaire avec Java 9jshell
:la source
Lisp commun, 87 octets
Non golfé:
la source
C #, 62 octets
la source