Pour ce défi, vous devez sortir le résultat de la somme de certains nombres. Quels sont ces chiffres? Eh bien, on vous donne une entrée, ( a
, b
), qui sont des entiers (positifs, négatifs ou zéro) a != b
, et a < b
, et chaque entier à l'intérieur a
et b
(y compris eux) aura des exposants en fonction des nombres de Fibonacci. C'est déroutant alors voici un exemple:
Input: (-2, 2)
Output: -2**1 + (-1**1) + 0**2 + 1**3 + 2**5 =
-2 + -1 + 0 + 1 + 32 = 30
Étant donné que le premier nombre de Fibonacci est représenté par f(0)
, la formule est:
a**f(0) + ... + b**f(b-a+1)
Entrée, traitement, sortie
Pour clarifier ce qui précède, voici quelques cas de test, le traitement de l'entrée et les sorties attendues:
Input: (1, 2)
Processing: 1**1 + 2**1
Output: 3
Input: (4, 8)
Processing: 4**1 + 5**1 + 6**2 + 7**3 + 8**5
Output: 33156
Input: (-1, 2)
Processing: -1**1 + 0**1 + 1**2 + 2**3
Output: 8
Input: (-4, -1)
Processing: -4**1 + -3**1 + -2**2 + -1**3
Output: -4
Règles
Aucune échappatoire standard autorisée
Les exposants doivent être en ordre selon la série de Fibonacci
Le code doit fonctionner pour les cas de test ci-dessus
Seule la sortie doit être retournée
Critères gagnants
Le code le plus court gagne!
0
n'est pas inclus dans les nombres de fibonacci ici?Réponses:
05AB1E , 9 octets
Essayez-le en ligne!
Ne fonctionne pas sur TIO pour les écarts importants entre
a
etb
(EG[a..b].length() > 25
).Mais cela semble fonctionner pour de plus grands nombres que la réponse moyenne ici.
Inefficace, car il calcule la séquence de fibonacci jusqu'à
n!
, ce qui est plus que nécessaire pour calculer la réponse, oùn
est la longueur de la séquence dea..b
.la source
Mathematica,
38 octets37 octets31 octetsCeci est juste la réponse de rahnema1 portée sur Mathematica. Voici ma solution originale:
Explication:
##
représente la séquence de tous les arguments,#
représente le premier argument,#2
représente le deuxième argument. Lorsqu'il est appelé avec deux argumentsa
etb
,Range[##]
donnera la liste{a, a+1, ..., b}
etRange[#2-#+1]
donnera la liste de la même longueur{1, 2, ..., b-a+1}
. DepuisFibonacci
estListable
,Fibonacci@Range[#2-#+1]
donnera la liste des premiersb-a+1
nombres de Fibonacci. DepuisPower
estListable
, en l' appelant sur deux listes de longueur égale enfilera le sur les listes. Prend ensuiteTr
la somme.Edit: sauvé 1 octet grâce à Martin Ender.
la source
Range@##
.Tr[(r=Range@##)^Fibonacci[r-#+1]]&
.Range
deux fois aurait dû être un drapeau rouge. Merci!Python , 49 octets
Un lambda récursif qui prend
a
etb
comme arguments séparés (vous pouvez également définir les deux premiers nombres de fibonacci,x
ety
, selon ce que vous voulez - pas intentionnel, mais une fonctionnalité intéressante):Essayez-le en ligne! (comprend la suite de tests)
Suggestions de golf bienvenues.
la source
-~a
et pas simplementa+1
? Je pense que cela-~a
dépend de la machine.Perl 6 ,
3230 octets$^a
et$^b
sont les deux arguments de la fonction;$^a..$^b
est la gamme des nombres de$^a
vers$^b
, qui est compressé avec exponentiation parZ**
de la suite de Fibonacci,1, &[+] ... *
.Merci à Brad Gilbert d'avoir rasé deux octets.
la source
(1,&[+]...*)
est un octet plus court, et l'espace aprèsZ**
n'est pas nécessaire.&infix:<+>
peut accepter 0,1 ou 2 arguments. (&[+]
est une courte façon d'écrire&infix:<+>
). Le WwhatCode* + *
accepte exactement 2 arguments. (&[0]() == 0
vous devez donc avoir le1
pour commencer la séquence)Maxima, 32 octets
la source
Pyke, 11 octets
Essayez-le ici!
la source
JavaScript (ES7), 42 octets
Port simple de l'excellente réponse Python de @ FlipTack.
la source
Haskell, 35 octets
Usage:
la source
o
en un opérateur d'infixe, commea#b=sum...
.(a,b)
commea?b
alors pourquoi ne nous a permis de le préparer comme immédiat[a..b]?f
sur(?)=sum.zipWith(^)
?MATL , 23 octets
Essayez-le en ligne! Ou vérifiez tous les cas de test .
la source
R, 51 octets
Une fonction anonyme.
la source
Gelée , 13 octets
Essayez-le en ligne!
la source
f(1,25)
travaux;). +1Rubis, 46 octets
Rien de particulièrement intelligent ou original à voir ici. Désolé.
la source
ℤ.upto(ℤ)
méthode est un bon rappel de la beauté du comportement tout objet de Ruby. Continuer à jouer au code est laissé comme un exercice aux locuteurs natifs de Ruby. Avez-vous déjà scanné codegolf.stackexchange.com/questions/363/… ?Java 7, 96 octets
Golfé:
Non golfé:
la source
R, 57 octets
Assez simple.
gmp::fibnum
est une fonction intégrée plus courte, mais elle ne prend pas en charge le retour de la séquence entièren
, ce qui senumbers::fibonacci
fait en ajoutant l'argumentT
.J'ai d'abord eu une solution plus délicate
gmp::fibnum
qui a fini par 2 octets de plus que cette solution.la source
scan()
économiser 6 octets; voir ma solution publiée.dc , 56 octets
Termine la saisie
[1,30]
en 51 secondes. Prend les deux entrées sur deux lignes distinctes une fois exécutées et des nombres négatifs avec un trait de soulignement (_
) au lieu d'un tiret (c'est-4
-à- dire serait entré comme_4
).la source
PHP,
7775 octetsprend les limites des arguments de ligne de commande. Courez avec
-nr
.présentant à nouveau les variables variables de PHP (et ce que j'ai découvert à leur sujet .
panne
La réponse de FlipTack portée en PHP a 70 octets:
la source
Axiome, 65 octets
code de test et résultats
la source
PowerShell , 67 octets
Essayez-le en ligne!
J'ai trouvé une façon légèrement meilleure de faire la séquence, mais PowerShell ne se compare pas à d'autres langues pour celui-ci :)
la source