(Inspiré des 95 caractères de l'ASCII ... 95 citations de films )
Le défi
Étant donné l'entrée n
, la sortie du nth
numéro de Fibonacci . Vous pouvez utiliser soit 0
ou l' 1
indexation, veuillez indiquer lequel dans votre soumission. C'est simple, non? Le hic, c'est que vous devez prendre le jeu de caractères de la réponse précédente immédiate, en retirer deux caractères et ajouter un caractère distinct. Le caractère séparé doit
- ne pas être du jeu de caractères de la réponse précédente immédiate
- provenir de l'ensemble de (ASCII imprimable, espace, nouvelle ligne, onglet horizontal)
et ainsi la taille totale de votre jeu de caractères sera exactement une plus petite que celle de la réponse précédente immédiate.
La réponse initiale
La première soumission doit contenir un sous-ensemble de (tous ASCII imprimables, espace, nouvelle ligne et onglet horizontal) avec deux caractères supprimés. Chaque soumission par la suite doit limiter ses réponses à ce format original ASCII uniquement (ce qui signifie que vous ne pouvez pas ajouter de caractère Unicode ou ASCII étendu ... désolé Jelly, APL, et al.).
Exemples et clarifications
- Supposons que la première réponse soit en C et contient (presque tous les ASCII imprimables, les sauts de ligne et les onglets horizontaux), et omet le
%
et^
de son jeu de caractères. La deuxième soumission doit donc supprimer deux caractères du jeu de caractères précédent (presque tous ASCII imprimables, nouvelle ligne et onglet horizontal) et ajouter le%
ou^
. C'est peut-être une réponse PowerShell à une ligne qui omet la nouvelle ligne. Etc. - Si la réponse précédente avait
print(){}!*+
pour jeu de caractères (12 caractères), votre soumission pourrait avoirprint(){}!
(10 caractères) et un caractère supplémentaire,print(){!+
(10 caractères) et un caractère supplémentaire, etc. - Si la réponse précédente avait
print(){}!*+
comme jeu de caractères (12 caractères), votre soumission ne pourrait pas avoirprint()
et&
(8 caractères) comme jeu de caractères, depuis12 - 8 > 1
. - Si la réponse précédente avait
print(){}!*+
comme jeu de caractères (12 caractères), votre soumission ne pourrait pas avoirprint(){}!
(10 caractères) plus un caractère supplémentaire*
comme jeu de caractères, car même s'il s'agit de 11 caractères, le*
est inclus dans le jeu précédent. - Tous les personnages de votre jeu de caractères ne doivent pas nécessairement faire quelque chose d'utile pour votre soumission. Par exemple, si la réponse précédente avait
print(){}!*+
pour jeu de caractères et que votre langue possède une fonction intégrée!
qui calcule la séquence de Fibonacci et#
qui commence un commentaire, votre soumission pourrait être!#print(){}
et être toujours valide. - Vous pouvez utiliser plusieurs fois le même personnage de votre jeu de caractères. Par exemple, supposons que votre jeu de caractères soit
!*#_
, votre réponse pourrait être!!!**#**#_!!
et serait acceptable. - En plus de votre code (et une explication est bien aussi!), Veuillez également lister explicitement votre jeu de caractères, pour le rendre plus facile pour les futures soumissions.
Gagnant
Le gagnant du défi sera la personne qui a publié la deuxième soumission la plus récente (c.-à-d. Pas la personne qui a posté la dernière fois, car elle a rompu la chaîne).
Règles finales
Les règles habituelles de chaînage des réponses s'appliquent:
- La même personne ne peut pas poster deux fois de suite
- Si une réponse est jugée invalide (par exemple, elle a utilisé un caractère interdit ou ne se calcule pas correctement), elle doit être supprimée (et toutes les réponses ultérieures qui en découlent également)
- Deux utilisateurs qui publient "en même temps" devront laisser la soumission antérieure
- La même langue ne peut pas être publiée deux fois de suite. Aux fins de cette règle, les langues de la même famille (par exemple, Python 2 et Python 3) comptent comme «la même langue».
Dernières choses:
- Ce message fonctionne mieux si vous triez par "le plus ancien" afin que les réponses soient dans le bon ordre.
- Kyle Gullion a construit un vérificateur de code en Python ici pour vérifier si vous manquez ou utilisez des caractères incorrects.
Réponses:
1. C
Ne contient ni
{
ou}
.Essayez-le en ligne!
J'espère que j'ai bien fait ça.
la source
{
ou}
vous pouvez ensuite ajouter l'autre.{
ou}
, alors vous pouvez ajouter l'autre et la réponse Brain-Flak.*
. Sommes-nous autorisés à omettre des caractères de notre jeu de caractères et à les avoir toujours "inclus", ou était-ce un oubli?2?1*1
cela.2. Mathematica
Ne contient pas
}
,Z
ou tabulation horizontale. (Réinclus{
.)Les deux premières lignes ne sont qu'un commentaire; la dernière ligne est la fonction intégrée, utilisant la seule True True Super Cosmically Ordained Indexing où les entrées 0 et 1 donnent respectivement les sorties 0 et 1 (je ne sais pas si j'appelle ceci indexé 0 ou indexé 1).
la source
8. Octave
Ajouté
U
et supprimé+
et-
. La solution ne contient aucun+-`01AEI
caractère de tabulation ou.Basé sur la matrice de Fibonacci .
la source
t
quand même ...\t
est la façon dont le caractère de tabulation est imprimé en Python (que j'ai utilisé pour vérifier ma réponse), je vais modifier pour le rendre un peu plus clair.33, MATL
Ajouté
-
, supprimé()
. La solution ne contient ni!&'()/\01?AEIKLMNPSTWZ`dmwz{}|~
tabulation, ni espace ni nouvelle ligne.Essayez-le sur MATL Online
Erreur fixe:
0
,1
et\
ont été accidentellement laissé dans le commentaire (après%
) à la fin. Leur suppression ne rompt pas la fonctionnalité. Déplacement de cette réponse de 32 à 33 pour tenter de la maintenir valide. S'il doit être supprimé, faites-le moi savoir et je le ferai.la source
36. Java
Ajouté
\
. Suppriméqx
. N'utilise ni!&'()/1?AEIKLMNPSTWZ`dmnqtwxz{}|~[]
tabulation ni espace.Je sais que j'aurais probablement pu attendre plus longtemps, mais je voulais m'assurer de le faire sortir avant qu'il ne soit trop tard. Non seulement cette classe définit une fonction qui prend un entier
n
et renvoie ce nombre de Fibonacci, mais elle imprime également les 20 premiers pour vous juste pour le plaisir. J'ai essayé de faire preuve de diligence raisonnable en écrivant ceci en java simple et sans golf sournois, puis j'ai supprimé les personnages illégaux 1 par 1 jusqu'à ce que nous arrivions à la créature que vous voyez devant vous maintenant.Essayez-le en ligne!
la source
0
37. Python 2
Readded
x
. N'utilise pas!&'()/1?AEIMNPSTWZdmnqtwz{}|~[]
, espace, tabulation ou `. Suppression de K et L.Avec commentaires:
Cette approche utilise le terme général de la série fibonacci.
la source
3. Brain-Flak
Ne contient pas
Z
,~
,A
ou tabulation horizontale. (Re-inclus}
)Essayez-le en ligne!
la source
5, Haskell
Supprimé
AEIOU
et onglet, ajoutéZ
Essayez-le en ligne!
la source
12. Python 3
ajouté
:
supprimé{;
ne contient pas de{};`01AEIPQx
caractère de tabulation.la source
{;
, non};
.6. Brain-Flak
Essayez-le en ligne! N'utilise pas
tabAEIU`_
et ajouté en arrièreO
la source
26. Prolog (SWI)
Ajouté
%
. SuppriméNK
. N'utilise pas&*01AEIKLMNPSTWZ`dmrwz{}]
, tabulation ou nouvelle ligne.Essayez-le en ligne!
la source
34. brainfuck
Ajout d'une nouvelle ligne, suppression
n
ett
. N'utilise pas!&'()/\01?AEIKLMNPSTWZ`dmntwz{}|~
tabulation ni espace. (peut-être que nous pouvons obtenir des langues 2D maintenant)0 indexé. L'entrée / sortie est des valeurs d'octets.
Essayez-le en ligne!
la source
4, Python 2
Supprimé
AEIZ
, onglet ajouté~
Essayez-le en ligne!
la source
11. ML standard (mosml)
Ajouté
+
. Supprimé:}
. Ne contient:}0`1AEIPQx
ni tabulation.SML n'est pas sur TIO, et j'ai utilisé la variété moscow ml, mais il y a un interprète en ligne SMLNJ ici .
la source
10. C
Ajouté
m
, suppriméPQ
. Ne contient+`01AEIPQx
ni tabulation.Drapeau du compilateur:
-lm
Essayez-le en ligne!
la source
.
manque toujours dans votre commentaire.9. Python 2
Ajouté
-
, supprimém
etx
. Ne contient aucun+`01AEImx
caractère de tabulation ou.Fonction Python récursive! Ajoute tous les nombres de Fibonacci en arrière jusqu'à ce que
n
soit 1.la source
1
et laissé de côté345678BCDFGHJKLMNOPQRSTUVWXYZ
18. Octave
Ajout
;
et suppressionf
et espace. La solution ne contient aucun{}:`*%01AEIPQfrd
, aucun onglet, aucune nouvelle ligne et aucun espace.Identique à la réponse 8 , juste avec plus de haine SML: P
la source
23. ML standard (mosml)
Nous y revoilà. Ajouté
Q
, supprimé}
et]
. N'utilise pas%&*+01:AEILMPZ`dmrzM{}]
, tabule ou saut de lignela source
Q
place.25. CJam
Ajouté en
+
arrière, suppriméS
etT
. N'utilise pas%&*01AEILMPSTZ`dmrz{}]Ww
, tabulation ou saut de ligne.Fondamentalement, un port de ma réponse plus ancienne, mais celui-ci utilise une astuce eval pour contourner le manque d'accolades.
0 indexé.
Essayez-le en ligne!
la source
27. JavaScript
Ajouté
*
, supprimé"
et'
. N'utilise pas"&'01AEIKLMNPSTZ`dmrz{}]Ww
, tabulation ou saut de ligne.la source
28. Haskell
Try it online! Usage:
g 3
gives2
.Added
"
, removed<space>
and-
. Does not use&'-01AEIKLMNPSTZ`dmrz{}]Ww
or any white spcae.la source
30. Standard ML
Added
:
, removed+
and?
. Does not contain!&'+-01?AEIKLMNPSTWZ`dmrwz{}
or any white space.The first part
fun$(a,b,x)n=if(length(x)=n)then(length(a))else$(b,a@b,()::x)n
defines a function$
which computes then
th fibonacci number itereatively using an unary list encoding. The length of argumentx
indicates the current number anda
andb
are lists of lengthfib(length(x)-1)
andfib(length(x))
. Ifn
equalslength(x)
we returnlength(b)
, otherwise recursively adda
andb
via list concatenation and incrementx
by adding an element()
to it.The second part
("#%*./23456789<>BCDFGHJOQRUVXY\\^_cjkopqvy|~";$([],[()],[]))
is a sequence where the string is discarded and$([],[()],[])
is the initialisation of the function$
witha = 0
,b = 1
andx = 0
, resulting in an anonymous function which computes the nth fibonacci number.la source
32, Python 3
Added
r
and removed|~
. Solution contains no!&'/\-01?AEIKLMNPSTWZ`dmrwz{}|~
, no tab, no newline, and no space characters.la source
39. Python 2
Added
0
. Removed@^
. Doesn't use!^&'()/1?@AEIMNPSTWZdmntwz{}|~[] `
, tab or newline.Argument to exec without escape sequences:
Try it online!
la source
38. Matl
Added
q
. Removed0 <newline>
. Doesn't use!&'()/1?AEIKLM0NPSTW{Z`dmntwxz}|~[]
, tab, newline, or space.Try it online
la source
q
x
, you didn't remove it, yet it's restricted. Can you add x at the end of the comment? The restricted list also says you don't useq
, so you need to remove that.7, Python 2
Re-included
_
. Removed characters: tab andAEIU`
, and (just to get a little nasty)0
and1
. Otherwise, just a copy of Wheat Wizard's answer (hence the community wiki).Try it online!
la source
13. Standard ML (mosml)
Added
x
. Removed:r
. Doesn't contain:;{}0`1AEIPQr
or tab character.After we've pretty much excluded C-style languages, let's go after Python. This answer is pretty much identical to answer 11.
la source
14. Octave
Added
r
and removed newline and space. Solution contains no{}:;`01AEIPQ
, no tab, no newline, and no space characters.Based on a closed form formula (7).
la source
16. Octave
Added
/
and removed * and space. Solution contains no{}:;`*%01AEIPQ
, no tab, no newline, and no space characters.Identical to answer 14, just a straight up attack on SML and Python :P
la source
15. Standard ML (mosml)
Added space and removed
%/
. Doesn't contain{}:;`01AEIPQ
, tab, or newline.la source