Écrivez un morceau de code JavaScript qui appelle alert
avec un tableau contenant les 50 premiers numéros de Fibonacci dans l'ordre. Vous ne pouvez utiliser les caractères suivants: +!()[]
.
À titre de référence, votre code doit être fonctionnellement égal à ce qui suit:
var fib = [], a = 1, b = 1;
for (var _ = 0; _ < 50; _++) {
fib.push(a);
var t = a; a = b; b = t + a;
}
alert(fib);
Vous ne pouvez assumer aucun contenu sur la page Web - votre programme sera exécuté dans la console about:blank
. De même, vous ne pouvez pas «tricher» et stocker des paramètres dans des cookies, des paramètres ou d'autres données. Votre solution doit fonctionner sur toute nouvelle installation de la dernière version de Google Chrome ou Firefox sur n'importe quel système d'exploitation. En cas de doute, essayez de rester aussi portable que possible.
Le plus petit code source en octets gagne.
Réponses:
7576 caractères
Firefox / Safari 9 (WebKit Nightly)
L'économiseur d'octets principal est
fill()
La plupart des caractères non alphanumériques (en particulier
;
et>
) sont très chers, donc j'essaie vraiment de minimiser leur utilisation.Scénario
Chrome (11605)
Original:
;
est très cher.Script: Pastebin .
la source
falsefalse
comme un nom de variable contient moins de caractères quet
ouf
ou quoi que ce soit, cela pourrait vous aider à en raser un peu plus! Dommage que nous ne puissions pas produire plus de 50 que parce que50
c'est plus court que48
....pop()
,.shift()
et.splice()
mais ils ajoutent tous trop de caractères! Pensez que @vihan a couvert! Sialert()
ing à chaque étape est acceptable, il pourrait être possible de sauter complètement l'inverse, mais je pense que c'est un peu contraire aux règles ...15 943 octets
J'ai juste codé en dur les valeurs et utilisé le compilateur JScrewit .
Code d'origine:
Code JSFuck:
Bien que le codage en dur soit plus long qu'un générateur de golf dans js normal, les nombres sont (comparativement; P) facilement représentés dans JsFuck.
la source
302871241912288 octetsGolf d'origine:
Unshift et Reverse sont moins chers que Push pour une légère économie:
Ne convient pas! Limite de 30K caractères! Pastebin ici.J'ai essayé jsfuck.com mais cela m'a donné 62399 octets.
Suite à la suggestion de Stefnotch, a changé la compatibilité avec Chrome uniquement et a considérablement réduit le nombre. JSFuck généré par jscrew.it :
la source
12 2851218312069113991125211105 octetsCode d'origine:
Après avoir supprimé le point-virgule et l'avoir remplacé par «\ n»: (Merci Dom Hasting .)
Utiliser 'concat' au lieu de 'push' pour économiser quelques octets:
Code mis à jour:
Supprimer un espace vide:
Supprimer un espace vide après '+':
Code JSFuck:
la source
falsefalse
etfalse0
comme noms de variables au lieu det
etf
et il\n
y a moins de caractères que;
(selon jscrew.it de toute façon), vous devriez donc pouvoir remplacer ceux pour une sauvegarde également. S'il est possible d'afficher les 52 premiers chiffres, 50 fait aussi la moitié de la taille de 48 ... J'espère que ça aide!for(i=0;i<48;)
etf.push
pour plus d'économies et le remplacement des noms de variables permettra certainement d'économiser certainsf
=(![]+[])[+[]]
vsfalsefalse
=![]+[![]]
eti
=([![]]+[][[]])[+!![]+[+[]]]
vsfalse0
=![]+[+[]]
.concat
était le seul autre moyen que je pouvais voir pour aider à réduire cette méthode aussi!Firefox, 7446 octets
La source:
la source
14 097 octets
La première fois que je fais un de ces codes ou que je code dans cette langue, je reviendrai et verrai si je peux le réduire
Code d'origine:
Code JSFuck:
la source