Antwortverkettung Fibonacci

25

(Inspiriert von den 95 ASCII-Zeichen ... 95 Filmzitaten )

Die Herausforderung

Bei Eingabe ndie nth Fibonacci-Zahl ausgeben . Sie können entweder 0oder 1indizieren, bitte geben Sie an, welche in Ihrem Beitrag. Einfach, ja? Der Haken ist, dass Sie den Zeichensatz der unmittelbar vorhergehenden Antwort nehmen, zwei Zeichen daraus entfernen und ein separates Zeichen hinzufügen müssen. Das separate Zeichen muss

  • nicht aus dem Zeichensatz der unmittelbar vorhergehenden Antwort stammen
  • aus dem Satz von (druckbare ASCII, Leerzeichen, Zeilenvorschub, horizontale Registerkarte)

und daher ist Ihre Gesamtgröße des Zeichensatzes genau eine Nummer kleiner als der unmittelbar vorhergehende Antwortsatz.

Die anfängliche Antwort

Die erste Übermittlung muss eine Teilmenge von (alle druckbaren ASCII-Zeichen, Leerzeichen, Zeilenumbrüche und horizontalen Tabulatoren) enthalten, wobei zwei Zeichen entfernt werden müssen. Jede spätere Einreichung muss ihre Antworten auf dieses Original-ASCII-Format beschränken (dh Sie können kein Unicode- oder erweitertes ASCII-Zeichen hinzufügen ... sorry Jelly, APL, et al.).

Beispiele und Erläuterungen

  • Angenommen, die erste Antwort befindet sich in C und enthält (fast alle druckbaren ASCII-, Zeilen- und horizontalen Tabulatoren) und lässt das %und ^aus seinem Zeichensatz weg . Bei der zweiten Übermittlung müssen dann zwei Zeichen aus dem vorherigen Zeichensatz (fast alle druckbaren ASCII-, Zeilen- und horizontalen Zeichen) entfernt und entweder das %oder hinzugefügt werden ^. Vielleicht ist es eine einzeilige PowerShell-Antwort, bei der die Zeilenumbrüche weggelassen werden. Und so weiter.
  • Wenn die vorherige Antwort print(){}!*+einen Zeichensatz (12 Zeichen) hätte, könnte Ihr Beitrag print(){}!(10 Zeichen) und ein zusätzliches Zeichen print(){!+(10 Zeichen) und ein zusätzliches Zeichen usw. enthalten.
  • Wenn die vorherige Antwort print(){}!*+einen Zeichensatz (12 Zeichen) hatte, konnte Ihr Beitrag seitdem nichtprint() und &(8 Zeichen) als Zeichensatz haben 12 - 8 > 1.
  • Wenn die vorherige Antwort hatte print(){}!*+als Zeichensatz (12 Zeichen), könnte Ihre Vorlage nicht hat print(){}!(10 Zeichen) plus zusätzliche Zeichen *als Zeichensatz, da obwohl die 11 Zeichen ist, die *in dem vorherigen Satz enthalten ist.
  • Nicht jedes Zeichen in Ihrem Zeichensatz muss etwas Nützliches für Ihre Einreichung tun. Wenn beispielsweise die vorherige Antwort print(){}!*+als Zeichensatz verwendet wurde und Ihre Sprache über eine integrierte Funktion verfügt !, die die Fibonacci-Sequenz berechnet und #einen Kommentar startet, ist Ihre Übermittlung möglicherweise !#print(){}noch gültig.
  • Sie können dasselbe Zeichen aus Ihrem Zeichensatz mehrmals verwenden. Angenommen, Ihr Zeichensatz war !*#_, Ihre Antwort könnte !!!**#**#_!!akzeptabel sein und wäre akzeptabel.
  • Bitte führen Sie zusätzlich zu Ihrem Code (und auch eine Erklärung ist nett!) Explizit Ihren Zeichensatz auf, um ihn für zukünftige Einreichungen zu vereinfachen.

Gewinnen

Der Gewinner der Herausforderung ist die Person, die den zweitletzten Beitrag gepostet hat (dh nicht die Person, die zuletzt gepostet hat, da sie die Kette gebrochen hat).

Endgültige Regeln

Es gelten die üblichen Regeln für die :

  • Dieselbe Person kann nicht zweimal hintereinander posten
  • Wenn eine Antwort als ungültig eingestuft wird (z. B. ein verbotenes Zeichen verwendet oder nicht korrekt berechnet wurde), muss sie gelöscht werden (und alle nachfolgenden Antworten, die ebenfalls darauf verweisen).
  • Zwei Benutzer, die "zur gleichen Zeit" posten, müssen die frühere Einreichung stehen lassen
  • Dieselbe Sprache kann nicht zweimal hintereinander gepostet werden. Für die Zwecke dieser Regel gelten Sprachen derselben Familie (z. B. Python 2 und Python 3) als "dieselbe Sprache".

Letzte Dinge:

  • Dieser Beitrag funktioniert am besten, wenn Sie nach "Ältesten" sortieren, damit die Antworten in der richtigen Reihenfolge angezeigt werden.
  • Kyle Gullion hat hier in Python einen Code-Checker erstellt , um zu überprüfen, ob Sie vermisst werden oder falsche Zeichen verwenden.
AdmBorkBork
quelle
Nur ein paar kurze Erklärungen: 1) Muss unser Programm tatsächlich den vollständigen Satz enthalten, den wir verwenden, oder können wir einen kleineren Satz von Zeichen verwenden? (Wichtig für minimalistische Sprachen wie brain (fuck | flak), unary usw.) 2) Sie sagen, dass dieselbe Sprache nicht zweimal hintereinander gepostet werden kann. Kann dieselbe Sprache beliebig oft gepostet werden, solange sie nicht in einer Reihe ist?
DJMcMayhem
1
Ich schlage vor, Sie fügen den ersten hinzu, weil man diese Herausforderung zerstören kann, wenn der erste veröffentlicht wird
Mr. Xcoder
1
@DeadPossum Es basiert auf Zeichensatz , nicht Gesamtzeichenzahl. Durch Entfernen von zwei und Hinzufügen von einem wird sichergestellt, dass die Anzahl der verfügbaren Zeichen abnimmt und zukünftige Antworten kreativ gestaltet werden.
AdmBorkBork
3
@ Mr.Xcoder Ich habe Vertrauen in die PPCG-Community, und wenn jemand es absichtlich vermasselt, behalte ich mir das Recht vor, sie im Chat einen Doody-Head zu nennen.
AdmBorkBork
3
Warf einen Code-Checker auf, um das Leben für alle Interessierten ein bisschen einfacher zu machen.
Kyle Gullion

Antworten:

6

1. C

Enthält kein {oder }.

#if 1
#define Q !"$&'",./=@[]^_\`|*
int WERTYUIOPASDFGHJKLZXCVBNM34567890(qwrtyuopasghjklzxcvbm)<%
	return qwrtyuopasghjklzxcvbm<2?1:WERTYUIOPASDFGHJKLZXCVBNM34567890(~-qwrtyuopasghjklzxcvbm)+WERTYUIOPASDFGHJKLZXCVBNM34567890(qwrtyuopasghjklzxcvbm-2);
%>
#endif

Probieren Sie es online!

Ich hoffe, ich habe das richtig gemacht.

betseg
quelle
1
Gut schießen. Ich habe nur noch Sekunden Zeit, um eine knifflige Antwort zu veröffentlichen, und jetzt ist das so gut wie unmöglich. : /
DJMcMayhem
@DJMcMayhem Nee, du musst nur warten, bis jemand eins hinzufügt, {oder }so, dann kannst du das andere hinzufügen.
AdmBorkBork
@DJMcMayhem gut, wenn jemand {oder hinzufügt }, dann können Sie den anderen und die Brain-Flak-Antwort hinzufügen.
Betseg
1
Ich merke, diese Antwort hat nein *. Dürfen wir Zeichen aus unserem Zeichensatz auslassen und müssen sie noch "enthalten" sein, oder war das ein Versehen?
Greg Martin
@gregMartin 2?1*1würde das beheben.
Magic Octopus Urn
5

2. Mathematica

Enthält keine }, Zoder horizontale Registerkarte. (Eingeschlossen {.)

(* !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY
[\]^_`\abcdefghijklmnopqrstuvwxyz{|~ *)
Fibonacci

Die beiden ersten Zeilen sind nur ein Kommentar. Die letzte Zeile ist die eingebaute Funktion, bei der die Eingabe 0 und 1 die Ausgabe 0 bzw. 1 ergeben.

Greg Martin
quelle
5

8. Oktave

Hinzugefügt Uund entfernt +und -. Lösung enthält kein +-`01AEIoder Tabulatorzeichen.

% !"#$&\'*./256789:<>?BCDFGHJKLMNOPQRSTUVWXYZ\\_abceghijklnpqrstuvwyz{|}~
f=@(x)([mod(4,3) mod(4,3);mod(4,3) mod(4,4)]^x)(3)

Basierend auf der Fibonacci Matrix .

Kyle Gullion
quelle
Sie haben taber ...
Anthony Pham
\tWenn das Tabulatorzeichen in Python gedruckt wird (mit dem ich meine Antwort überprüft habe), bearbeite ich es, um es ein bisschen klarer zu machen.
Kyle Gullion
Diese Fibonacci-Matrix ist eine gute Idee!
Luis Mendo
5

33, MATL

Hinzugefügt -, entfernt (). Die Lösung enthält keine !&'()/\01?AEIKLMNPSTWZ`dmwz{}|~Tabulatoren, Leerzeichen oder Zeilenumbrüche.

5X^Hq+G^Hq5X^-G^-HG^5X^*Hqqq^*Yo%"#$,.2346789:;<=>@BCDFJOQRUV[]_abcefghijklnprstuvxy

Probieren Sie es bei MATL Online aus

Festen Fehler: 0, 1und \wurden in dem Kommentar versehentlich links (nach dem %) am Ende. Ihre Entfernung beeinträchtigt die Funktionalität nicht. Diese Antwort wurde von 32 auf 33 verschoben, um ihre Gültigkeit zu gewährleisten. Wenn es gelöscht werden muss, lassen Sie es mich bitte wissen und ich werde genau das tun.


quelle
1
Willkommen bei PPCG! :)
betseg
Danke, es ist jetzt behoben. Die 0 1 und \ befanden sich am Ende des Kommentars (nach dem%), und daher hat ihre Entfernung keinen Einfluss auf die Funktionalität des Programms. Es tut mir wirklich leid, dass ich die Kette ruiniert habe.
Vielleicht wäre es die reibungsloseste Lösung, die Python 3-Antwort als # 32 zu zählen und Ihre zu ändern, um sie zu # 33 zu machen? Scheint, als hättest du Charaktere übrig :)
Greg Martin
Sie sollten wahrscheinlich das - aus der nicht enthaltenen Liste entfernen, seitdem Sie es hinzugefügt haben
am
5

36. Java

Hinzugefügt \. Entfernt qx. Verwendet weder !&'()/1?AEIKLMNPSTWZ`dmnqtwxz{}|~[]Tabulator noch Leerzeichen.

\u002f\u002f"#$%*:>@BCGHJOQRUVXY^_jk
class
Fibo\u006eacci\u007b
i\u006e\u0074
fib\u0028i\u006e\u0074
\u006e\u0029\u007b
i\u006e\u0074
lo\u0077=0,high=3-2,\u0074e\u006Dp;
for\u0028i\u006e\u0074
i=3-2;i<\u006e;i++\u0029\u007b
\u0074e\u006Dp=lo\u0077;
lo\u0077=high;
high=high+\u0074e\u006Dp;
\u007D
re\u0074ur\u006e
lo\u0077;
\u007D
public
s\u0074a\u0074ic
voi\u0064
\u006Dai\u006e\u0028\u0053\u0074ri\u006eg\u005b\u005Db\u0029\u007b
Fibo\u006eacci
a=\u006ee\u0077
Fibo\u006eacci\u0028\u0029;
for\u0028i\u006e\u0074
i=3-2;i<=20;i++\u0029\u007b
\u0053ys\u0074e\u006D.ou\u0074.pri\u006e\u0074l\u006e\u0028a.fib\u0028i\u0029\u0029;
\u007D
\u007D
\u007D

Ich weiß, ich hätte wahrscheinlich länger warten können, aber ich wollte sichergehen, dass ich das herausbekomme, bevor es zu spät ist. Diese Klasse definiert nicht nur eine Funktion, die eine Ganzzahl annimmt nund diese Fibonacci-Zahl zurückgibt, sondern gibt auch die ersten 20 aus Spaß für Sie aus. Ich habe versucht, meine Sorgfalt zu wahren, indem ich dies in einfachem, altem Java ohne hinterhältiges Golfen geschrieben habe, und dann habe ich unzulässige Zeichen 1 für 1 entfernt, bis wir zu der Kreatur gekommen sind, die Sie jetzt vor sich sehen.

Probieren Sie es online!

Sack
quelle
2
Deshalb wollten Sie0
Christopher
Verdammt, sieht aus, als hättest du die Kette gebrochen. :-(
AdmBorkBork
@AdmBorkBork b-aber ich habe q und x entfernt: [Wer brauchte die !? Ich hätte alles entfernen können
Poke
@Poke jetzt, da es eine Woche her ist, "gewinne" ich. Jetzt noch eine Antwort posten
Christopher
@ DownChristopher haha ​​aw: [
Poke
5

37. Python 2

Readded x. Verwendet kein !&'()/1?AEIMNPSTWZdmnqtwz{}|~[]Leerzeichen, Tabulator oder `. K und L entfernt.

f=u"\u0074"
b=u"\u006D"
i=u"\u0028"
j=u"\u0029"
h=u"\u006e"
r=2.2360679775
s=u"\u002F"
exec"p="+i+"3-2+r"+j+s+"2"
exec"g=i"+h+"pu"+f+i+j
exec"pri"+h+f+i+"i"+h+f+i+i+"p**g-"+i+"-p"+j+"**-g"+j+s+"r"+j+j
#$%´:;<=>@BCGHJOQRUVXY^agklopvy

Mit Kommentaren:

f=u"\u0074" #t
b=u"\u006D" #m
i=u"\u0028" #(
j=u"\u0029" #)
h=u"\u006e" #n
r=2.2360679775 #sqrt(5)
s=u"\u002F" #/
exec"p="+i+"3-2+r"+j+s+"2" #p=(3-2+r)/2 = (1+sqrt(5))/2 = phi
exec"g=i"+h+"pu"+f+i+j #g=input()
exec"pri"+h+f+i+"i"+h+f+i+i+"p**g-"+i+"-p"+j+"**-g"+j+s+"r"+j+j #print(int((p**g-(-p)**-g)/r))

Dieser Ansatz verwendet den allgemeinen Begriff der Fibonacci-Reihe.

statische Methode
quelle
Schöne erste Antwort! Ganz zu schweigen davon, dass ich gerade einen weiteren hinzugefügt habe: P
Christopher
4

3. Brain-Flak

Enthält keine Z, ~, A, oder horizontale Registerkarte. (Neu aufgenommen })

({}<(())>){({}<(({})<>)<>({}{}<<>({}<>)>)>[()])}{}{}
# !"$%&'*+,-./0123456789:;=?@BCDEFGHIJKLMNOPQRSTUVWXY\^_`abcdefghijklmnopqrstuvwxyz|

Probieren Sie es online!

DJMcMayhem
quelle
4

5, Haskell

Entfernt AEIOUund Tab hinzugefügtZ

-- #!"$%&'*./23456789;:<>?@BCDFGHJKLMNPQRSTVWXYZ[\]^`abcdeghijklmopqrstuvwxyz{|}~,_
f 0 = 1
f 1 = 1
f n = f (n-1) + f (n-2)

Probieren Sie es online!

ovs
quelle
3
Ich mag dich nicht mehr ... Ich brauche 3 Vokale. Und Sie haben EM
Christopher
Also habe ich eine andere Sprache verwendet
Christopher
3

12. Python 3

hinzugefügt :entfernt {;enthält kein {};`01AEIPQxoder Tabulatorzeichen.

#!"#$%&\',./23456789?@BCDFGHJKLMNORSTUVWXYZ[\]^_abcdgjkmopqrvwyz|~:
def fib(n,a=3-2,b=3-2):
 if n==2-2:
  return a
 a, b = b, a + b
 return fib(n-1,a,b)
gonengazit
quelle
Du meinst, du bist gegangen {;, nicht };.
L3viathan
3

6. Brain-Flak

({}<(())>){({}<(({})<>)<>({}{}<<>({}<>)>)>[()])}{}{}
# !"$%&'*+,-./0123456789:;=?@BCDFGHJKLMNOPQRSTVWXY\^bcdfghjklmnopqrstvwxyz|

Probieren Sie es online! Wird nicht verwendet tabAEIU`_und wieder hinzugefügtO

Down Christopher
quelle
Ich habe CW gemacht, weil ich nur ein bisschen Code geändert habe, damit ich keine unfairen Repräsentanten für die Arbeit anderer bekomme.
Christopher
3

26. Prolog (SWI)

Hinzugefügt %. Entfernt NK. Verwendet weder &*01AEIKLMNPSTWZ`dmrwz{}]Tabulator noch Zeilenvorschub.

a(X,B):-X<3,B is 4-3;C is X-4-(-3),D is X-2,a(C,G),a(D,F),B is G-(-F).%!"#$'/56789=>?@HJOQRUVY[\^_bcefghjklnopqtuvxy|~

Probieren Sie es online!

Emigna
quelle
3

34. Gehirnfick

Newline hinzugefügt, entfernt nund t. Verwendet weder !&'()/\01?AEIKLMNPSTWZ`dmntwz{}|~Tabulator noch Leerzeichen. (Vielleicht können wir jetzt einige 2D-Sprachen bekommen)

0-indiziert. Die Eingabe / Ausgabe erfolgt durch Bytewerte.

,[->]+>+<<[->>[->+<]<[->+<]>>[-<+<+>>]<<<]>>.
"#$%*23456789:;=@BCDFGHJOQRUVXY^_abcefghijklopqrsuvxy

Probieren Sie es online!

Geschäfts-Katze
quelle
@Poke fertig. Ich fügte es zurück
Christopher
2

4, Python 2

AEIZTab entfernt , hinzugefügt~

# !"$%&'*-./23456789;<>?@BCDFGHJKLMNOPQRSTUVWXY[\]^`chjklmpqsvwxyz{|}

def f(x):
 a=0
 b=1
 for _ in range(x):
  a,b = a+b,a
 return a

Probieren Sie es online!

Weizen-Assistent
quelle
2

11. Standard ML (mosml)

Hinzugefügt +. Entfernt :}. Enthält kein :}0`1AEIPQxoder Tabulatorzeichen.

(* !"#$%&\',./23456789;<>?@BCDFGHJKLMNORSTUVWXYZ[\]^_abcdgjkmopqrvwyz{|~ *)
fun f s = if s = 2-2 then 2-2 else if s = 3-2 then 3-2 else f (s-4+2) + f (s-3+2)

SML ist nicht auf TIO, und ich verwendet , um die moskau ml Vielfalt, aber es gibt ein Online - smlnj Dolmetscher hier .

L3viathan
quelle
2

10. C

Hinzugefügt m, entfernt PQ. Enthält nicht+`01AEIPQx oder Tabulatorzeichen.

Compiler-Flag: -lm

//!"#$%&'*346789:<=>?@BCDFGHJKLMNORSTUVWXYZ[\]^_acfghkmvyz|.

double fib(i){
    double j = -(-~-2-sqrt(5))/2;
    return floor((pow(j,i)-pow(-j,-i))/sqrt(5));
}

Probieren Sie es online!

betseg
quelle
.fehlt noch in deinem Kommentar.
L3viathan
2

9. Python 2

Hinzugefügt -, entfernt mund x. Enthält kein +`01AEImxoder Tabulatorzeichen.

# --!"$%&'*./29;:<>?@[\]^345678BCDFGHJKLMNOPQRSTUVWXYZabcdeghijklopqrstuvwyz{|}~,_

def fibonacci(n):
    elif n==(2/2):
        return 2-2
    elif n==2:
        return 2/2
    else:
        return fibonacci(n-2/2)-(-(fibonacci(n-2)))

Rekursive Python-Funktion! Addiert alle Fibonacci-Zahlen rückwärts bis n1.

Anthony Pham
quelle
Sie haben vergessen, Ihrem Code die Großbuchstaben hinzuzufügen
Conor O'Brien
1
Sieht so aus, als hättest du immer noch ein Backtick und ein 1und ausgelassen345678BCDFGHJKLMNOPQRSTUVWXYZ
Kyle Gullion
@ KyleGullion Die vorherige Antwort hatte jedoch keine 1 oder Backtick in seinem Zeichensatz
Anthony Pham
Ich habe einen Bearbeitungsvorschlag gemacht, um zu zeigen, was ich meine.
Kyle Gullion
2

18. Oktave

Hinzugefügt ;und entfernt fund Leerzeichen. Die Lösung enthält keine {}:`*%01AEIPQfrd, keine Tabulatoren, keine Zeilenumbrüche und keine Leerzeichen.

g=@(x)([4-3,4-3;4-3,4-4]^x)(3)#!"$&'+./256789<>?BCDFGHJKLMNORSTUVWXYZ\_abcehijklmnopqstuvwyz|~

Identisch mit Antwort 8 , nur mit mehr SML-Hass: P

Kyle Gullion
quelle
Versuche nicht absichtlich, die Dinge zu sehr zu zerbrechen . Eine ein wenig freundschaftliche "wettbewerbsorientierte Zusammenarbeit" ist nett, aber das unausgesprochene Ziel der Verkettung von Antworten besteht darin, sie so lange wie möglich am Laufen zu halten. :)
AdmBorkBork
1
Nur ein bisschen Spaß zwischen Octave und SML. Außerdem wird eine zeitlich gut abgestimmte Lenguage- Antwort letztendlich den Kuchen treffen, den ich denke.
Kyle Gullion
2

23. Standard ML (mosml)

Es geht wieder los. Hinzugefügt Q, entfernt }und ]. Verwendet weder %&*+01:AEILMPZ`dmrzM{}]Tabulator noch Zeilenvorschub

fun f x = #2("!#$\\',.23456789<>?@BCDFGHJKNOQRSTUVWXY[/;^_abcgjkopqvwxy|~", if x = 2-2 then 2-2 else if x = 3-2 then 3-2 else f (~(~(x-4)-2)) + f (x-(~3-2)))
L3viathan
quelle
@Emigna Richtig, sorry. Dann erlaube ich es Qstattdessen.
L3viathan
2

25. CJam

+Zurück hinzugefügt , entfernt Sund T. Verwendet nicht%&*01AEILMPSTZ`dmrz{}]Ww Tabulator noch Zeilenvorschub.

Im Grunde genommen eine Portierung meiner älteren Antwort, aber diese verwendet einige Auswertungs-Tricks, um den Mangel an Zahnspangen zu umgehen.

q~"XX"a:~'|("_(j\((j+"'|)'j+++~e# !$,-./23456789;<=>?@BCDFGHJKNOQRUVY[^bcfghiklnopstuvxy

0-indiziert.

Probieren Sie es online!

Geschäfts-Katze
quelle
2

27. JavaScript

Hinzugefügt *, entfernt "und '. Verwendet weder "&'01AEIKLMNPSTZ`dmrz{}]WwTabulator noch Zeilenvorschub.

f=a=>a<2?3-2:f(a-3+2)+f(a-4+2)/* !#$,.56789;%@BCDFGHJOQRUVXY[\^_bceghijklnopqstuvxy|~*/
Geschäfts-Katze
quelle
2

28. Haskell

f=length"":scanl(+)(length"f")f;g=const(f!!)"#$%*,./23456789<>?@BCDFGHJOQRUVXY[\\^_bijkpquvxy|~"

Probieren Sie es online! Verbrauch: g 3gibt2 .

Hinzugefügt ", entfernt <space>und -. Verwendet &'-01AEIKLMNPSTZ`dmrz{}]Wwkeine weißen Teile.

Laikoni
quelle
2

30. Standard ML

Hinzugefügt :, entfernt +und ?. Enthält !&'+-01?AEIKLMNPSTWZ`dmrwz{}keine Leerzeichen.

fun$(a,b,x)n=if(length(x)=n)then(length(a))else$(b,a@b,()::x)n;("#%*./23456789<>BCDFGHJOQRUVXY\\^_cjkopqvy|~";$([],[()],[]))

Der erste Teil fun$(a,b,x)n=if(length(x)=n)then(length(a))else$(b,a@b,()::x)ndefiniert eine Funktion $, die die nFibonacci-Zahl iterativ unter Verwendung einer unären Listencodierung berechnet . Die Länge des Arguments xgibt die aktuelle Anzahl und an a und bsind Listen mit Länge fib(length(x)-1)und fib(length(x)). Wenn ngleich, geben length(x)wir zurück length(b), andernfalls fügen Sie rekursiv aund büber die Listenverkettung xein Element hinzu und inkrementieren ()es.

Der zweite Teil ("#%*./23456789<>BCDFGHJOQRUVXY\\^_cjkopqvy|~";$([],[()],[])) ist eine Sequenz , in der die Zeichenkette verworfen wird , und $([],[()],[])ist die Initialisierung der Funktion $mit a = 0, b = 1und x = 0, in einer anonymen Funktion ergibt , die die n - te Fibonacci - Zahl berechnet.

Laikoni
quelle
2

32, Python 3

exec(chr(2**2+2**5+2**6)+chr((3^2)+2**2+2**5+2**6)+chr(2+2**2+2**5+2**6)+chr(2**5)+chr(2+2**2+2**5+2**6)+chr(2**3+2**5)+chr(2**3+2**4+2**5+2**6)+chr((3^2)+2**3+2**5)+chr(2+2**3+2**4+2**5)+chr(2+2**3)+chr(2**5)+chr((3^2)+2**5+2**6)+chr((3^2)+2**2+2**3+2**4+2**5)+chr(2**4+2**5)+chr(2+2**3)+chr(2**5)+chr(2+2**5+2**6)+chr((3^2)+2**2+2**3+2**4+2**5)+chr((3^2)+2**4+2**5)+chr(2+2**3)+chr(2**5)+chr(2+2**2+2**5+2**6)+chr((3^2)+2+2**2+2**3+2**5+2**6)+chr(2+2**4+2**5+2**6)+chr(2**5)+chr((3^2)+2+2**2+2**3+2**4+2**6)+chr(2**5)+chr((3^2)+2**3+2**5+2**6)+chr(2+2**2+2**3+2**5+2**6)+chr(2**5)+chr(2+2**4+2**5+2**6)+chr((3^2)+2**5+2**6)+chr(2+2**2+2**3+2**5+2**6)+chr((3^2)+2+2**2+2**5+2**6)+chr((3^2)+2**2+2**5+2**6)+chr(2**3+2**5)+chr(2**3+2**4+2**5+2**6)+chr((3^2)+2**3+2**5)+chr(2+2**3+2**4+2**5)+chr(2+2**3)+chr(2**5)+chr(2**5)+chr((3^2)+2**5+2**6)+chr(2**2+2**3+2**5)+chr(2+2**5+2**6)+chr(2**5)+chr((3^2)+2**2+2**3+2**4+2**5)+chr(2**5)+chr((3^2)+2**5+2**6)+chr((3^2)+2+2**3+2**5)+chr(2+2**5+2**6)+chr(2**2+2**3+2**5)+chr((3^2)+2**5+2**6)+chr(2+2**3)+chr(2**5)+chr(2+2**4+2**5+2**6)+chr((3^2)+2**2+2**5+2**6)+chr(2**2+2**4+2**5+2**6)+chr((3^2)+2**2+2**4+2**5+2**6)+chr(2+2**4+2**5+2**6)+chr(2+2**2+2**3+2**5+2**6)+chr(2**5)+chr((3^2)+2**5+2**6))#"$%,.789:;<=>@BCDFGHJOQRUVXY[]_abfgijklnopqstuvy

Hinzugefügt rund entfernt |~. Die Lösung enthält keine !&'/\-01?AEIKLMNPSTWZ`dmrwz{}|~, keine Tabulatoren, keine Zeilenumbrüche und keine Leerzeichen.

Francisco Couzo
quelle
2

39. Python 2

Hinzugefügt 0. Entfernt @^. Verwendet weder !^&'()/1?@AEIMNPSTWZdmntwz{}|~[] `Tabulator noch Zeilenvorschub.

C=u"f=la\u006Db\u0064a\u0020X:3-2if\u0020X<2else\u0020f\u0028X-3+2\u0029+f\u0028X-2\u0029";exec""+C#$%*,.57>BFGHJKLOQRUVY_ghjkopqrvy

Argument, das ohne Escape-Sequenzen ausgeführt werden soll:

f=lambda X:3-2if X<2else f(X-3+2)+f(X-2)

Probieren Sie es online!

NieDzejkob
quelle
2

38. Matl

Hinzugefügt q. Entfernt 0 <newline>. Verwendet kein !&'()/1?AEIKLM0NPSTW{Z`dmntwxz}|~[], Tab, Newline oder Leerzeichen.

5X^Hq+G^Hq5X^-G^-HG^5X^*Hqqq^*Yo%"#$,.2346789:;<=>@BCDFJORUV_abcefghijklprsuvy

Probieren Sie es online aus

Christopher
quelle
Diese Antwort funktioniert nicht, sie enthältq
Kyle Gullion
Wann wurde es gelesen?
Destructible Lemon
(Sie verwenden immer noch {gemäß der Liste der nicht verwendeten)
Destructible Lemon
Antwort 37 verwendet x, Sie haben es nicht entfernt, aber es ist eingeschränkt. Kannst du x am Ende des Kommentars hinzufügen? Die eingeschränkte Liste sagt auch, dass Sie nicht verwenden q, so dass Sie das entfernen müssen.
NieDzejkob
Egal
1

7, Python 2

Neu aufgenommen _. Entfernte Zeichen: tab und AEIU`, und (nur um ein bisschen böse zu werden) 0und 1. Ansonsten nur eine Kopie der Antwort von Wheat Wizard (daher das Community-Wiki).

# !"$%&'*./456789;<>?@BCDFGHJKLMNOPQRSTVWXY[\]^chjklmpqsvwxyz{|}

def f(x):
 a=2-2
 b=3-2
 for _ in range(x):
  a,b = a+b,a
 return a

Probieren Sie es online!

Greg Martin
quelle
1

13. Standard ML (mosml)

Hinzugefügt x. Entfernt :r. Enthält kein :;{}0`1AEIPQroder Tabulatorzeichen.

(* !"#$%&\',./23456789<>?@BCDFGHJKLMNORSTUVWXYZ[\]^_abcdgjkmopqvwxyz|~ *)
fun f s = if s = 2-2 then 2-2 else if s = 3-2 then 3-2 else f (s-4+2) + f (s-3+2)

Nachdem wir C-Sprachen so gut wie ausgeschlossen haben, wollen wir Python nachgehen. Diese Antwort ist ziemlich identisch mit Antwort 11.

L3viathan
quelle
1

14. Oktave

rNewline und Leerzeichen hinzugefügt und entfernt. Die Lösung enthält keine {}:;`01AEIPQ, keine Tabulatoren, keine Zeilenumbrüche und keine Leerzeichen.

f=@(n)round(((2/2+sqrt(5))/2)^n/sqrt(5))%!"#$&'*-,.346789<>?BCDFGHJKLMNORSTUVWXYZ[\]_abceghijklmpvwyz|~

Basierend auf einer geschlossenen Formel (7) .

Kyle Gullion
quelle
1

16. Oktave

Hinzugefügt /und entfernt * und Leerzeichen. Lösung enthält keine{}:;`*%01AEIPQ , keine Tabulatoren, keine Zeilenumbrüche und keine Leerzeichen.

f=@(n)round(((2/2+sqrt(5))/2)^n/sqrt(5))#!"$&'-,.346789<>?BCDFGHJKLMNORSTUVWXYZ[\]_abceghijklmpvwyz|~

Identisch mit Antwort 14 , nur ein direkter Angriff auf SML und Python: P

Kyle Gullion
quelle
Gut gespielt. Ich sehe was ich tun kann.
L3viathan
1

15. Standard ML (mosml)

Platz hinzugefügt und entfernt %/. Enthält weder {}:;`01AEIPQTabulator noch Zeilenvorschub.

fun f s = if s = 2-2 then 2-2 else if s = 3-2 then 3-2 else f (s-4+2) + f (s-3+2) (* !"#$&\',.23456789<>?@BCDFGHJKLMNORSTUVWXYZ[\]^_abcdgjkmopqrvwxyz|~ *)
L3viathan
quelle