Für diese Herausforderung müssen Sie das Ergebnis der Summe einiger Zahlen ausgeben. Was sind diese Zahlen? Nun, Sie erhalten eine Eingabe ( a
, b
), die Ganzzahlen (positiv, negativ oder null) sind a != b
, und a < b
, und jede Ganzzahl innerhalb a
und b
(einschließlich dieser) hat Exponenten gemäß den Fibonacci-Zahlen. Das ist verwirrend. Hier ist ein Beispiel:
Input: (-2, 2)
Output: -2**1 + (-1**1) + 0**2 + 1**3 + 2**5 =
-2 + -1 + 0 + 1 + 32 = 30
Da die erste Fibonacci-Zahl durch dargestellt wird f(0)
, lautet die Formel:
a**f(0) + ... + b**f(b-a+1)
Eingabe, Verarbeitung, Ausgabe
Um dies zu verdeutlichen, sind hier einige Testfälle, die Verarbeitung der Eingabe und die erwarteten Ausgaben aufgeführt:
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
Regeln
Keine Standardlücken erlaubt
Exponenten müssen gemäß der Fibonacci-Reihe in Ordnung sein
Der Code muss für die oben genannten Testfälle funktionieren
Es muss nur die Ausgabe zurückgegeben werden
Gewinnkriterien
Der kürzeste Code gewinnt!
0
Ist das hier also nicht in den Fibonacci-Zahlen enthalten?Antworten:
05AB1E , 9 Bytes
Probieren Sie es online aus!
Funktioniert nicht mit TIO bei großen Abweichungen zwischen
a
undb
(EG[a..b].length() > 25
).Aber es scheint für größere Zahlen als die durchschnittliche Antwort hier zu funktionieren.
Ineffizient, weil es die Fibonacci-Sequenz bis zu berechnet
n!
, was mehr ist, als zur Berechnung der Antwort erforderlich ist, wobein
die Länge der Sequenz vona..b
.quelle
Mathematica,
38 Bytes37 Bytes31 BytesDies ist nur die Antwort von rahnema1, die auf Mathematica portiert wurde. Unten ist meine ursprüngliche Lösung:
Erläuterung:
##
repräsentiert die Reihenfolge aller Argumente,#
repräsentiert das erste Argument,#2
repräsentiert das zweite Argument. Wenn mit zwei Argumentena
und aufgerufenb
,Range[##]
wird die Liste{a, a+1, ..., b}
undRange[#2-#+1]
die Liste mit der gleichen Länge angegeben{1, 2, ..., b-a+1}
. DaFibonacci
istListable
,Fibonacci@Range[#2-#+1]
wird eine Liste der erstenb-a+1
Fibonacci-Zahlen geben. DaPower
istListable
, wird es auf zwei Listen gleicher Länge nennt es fädelt die Listen über. DannTr
nimmt die Summe.Bearbeiten: 1 Byte dank Martin Ender gespeichert.
quelle
Range@##
.Tr[(r=Range@##)^Fibonacci[r-#+1]]&
.Range
zweimalige Verwendung sollte eine rote Fahne gewesen sein. Vielen Dank!Python , 49 Bytes
Eine rekursive Lambda , das dauert
a
undb
als separate Argumente (Sie können auch die ersten beiden Zahlen der Fibonacci gesetzt,x
undy
, auf das, was Sie wollen - nicht absichtlich, aber ein nettes Feature):Probieren Sie es online aus! (inklusive Testsuite)
Golfvorschläge willkommen.
quelle
-~a
und nicht einfacha+1
? Ich denke-~a
ist maschinenabhängig.Perl 6 ,
3230 Bytes$^a
und$^b
sind die beiden Argumente für die Funktion;$^a..$^b
ist der Zahlenbereich von$^a
bis$^b
, der durch ExponentiationZ**
mit der Fibonacci-Sequenz gezippt wird1, &[+] ... *
.Vielen Dank an Brad Gilbert für das Rasieren von zwei Bytes.
quelle
(1,&[+]...*)
ist ein Byte kürzer und der Platz danachZ**
wird nicht benötigt.&infix:<+>
0,1 oder 2 Argumente akzeptiert werden können. (&[+]
ist eine kurze Schreibweise&infix:<+>
). Der WhateverCode* + *
akzeptiert genau 2 Argumente. (&[0]() == 0
1
Maxima, 32 Bytes
quelle
Pyke, 11 Bytes
Probieren Sie es hier aus!
quelle
JavaScript (ES7), 42 Byte
Unkomplizierter Port der exzellenten Python-Antwort von @ FlipTack.
quelle
Haskell, 35 Bytes
Verwendung:
quelle
o
in einen Infix-Operator wie za#b=sum...
.(a,b)
wiea?b
dann , warum wir sind nicht erlaubt es als unmittelbare Vorbereitung[a..b]?f
auf(?)=sum.zipWith(^)
?MATL , 23 Bytes
Probieren Sie es online aus! Oder überprüfen Sie alle Testfälle .
quelle
R, 51 Bytes
Eine anonyme Funktion.
quelle
Gelee , 13 Bytes
Probieren Sie es online aus!
quelle
f(1,25)
funktioniert;). +1Ruby, 46 Bytes
Hier gibt es nichts besonders Kluges oder Originelles zu sehen. Es tut uns leid.
quelle
ℤ.upto(ℤ)
Methode eine schöne Erinnerung an Rubys Schönheit des Verhaltens aller Objekte. Weiteres Golfen Der Code wird als Übung den Ruby-Muttersprachlern überlassen. Haben Sie schon codegolf.stackexchange.com/questions/363/… gescannt ?Java 7, 96 Bytes
Golf:
Ungolfed:
quelle
R, 57 Bytes
Ziemlich einfach.
gmp::fibnum
ist eine kürzere integrierte Funktion, unterstützt jedoch nicht die Rückgabe der gesamten Sequenz bis zun
,numbers::fibonacci
indem das Argument hinzugefügt wirdT
.Zuerst hatte ich eine schwierigere Lösung, bei
gmp::fibnum
der 2 Bytes länger waren als bei dieser Lösung.quelle
scan()
6 Bytes; siehe meine gepostete Lösung.Gleichstrom , 56 Bytes
Endet für die Eingabe
[1,30]
in 51 Sekunden. Übernimmt die beiden Eingaben in zwei getrennten Zeilen, sobald sie ausgeführt wurden, und negative Zahlen mit einem führenden Unterstrich (_
) anstelle eines Bindestrichs (dh-4
als eingegeben_4
).quelle
PHP,
7775 Bytesnimmt Grenzen von Befehlszeilenargumenten. Laufen Sie mit
-nr
.Präsentation von PHPs variablen Variablen von (und was ich über sie herausgefunden habe .
Nervenzusammenbruch
Die auf PHP portierte FlipTack-Antwort hat 70 Bytes:
quelle
Axiom, 65 Bytes
Testcode und Ergebnisse
quelle
PowerShell , 67 Byte
Probieren Sie es online aus!
Ich habe einen etwas besseren Weg gefunden, um die Sequenz zu machen, aber Powershell ist in diesem Fall nicht mit anderen Sprachen vergleichbar :)
quelle