Modifier: autorisé à réutiliser les espaces blancs.
Votre tâche consiste à écrire n programmes (ou fonctions, ou corps de fonctions sans utiliser de paramètres ou les noms de fonction) dans le même langage. Le k ème programme devrait afficher le nombre (cardinal) k en anglais standard en minuscules (avec un retour à la ligne facultatif). Ainsi, le premier programme devrait sortir one
, le second devrait sortir two
, etc. Pour un nombre ayant deux parties, elles devraient être séparées par un trait d'union comme twenty-one
.
Mais aucun programme de votre soumission ne peut partager des caractères non blancs ou des caractères blancs faisant des travaux utiles. Par exemple, si votre premier programme est juste "one"
, alors aucun "
o
n
et e
peut être utilisé à nouveau dans vos autres programmes.
Vous pouvez utiliser des espaces (espaces, sauts de ligne et tabulations) dans deux programmes ou plus, s'ils ne servent que de séparateurs ou d'indentation et ne font rien par eux-mêmes. Vous ne pouvez donc pas les réutiliser dans le langage des espaces blancs et vous ne pouvez pas les utiliser dans les chaînes de plusieurs programmes.
Vous ne pouvez utiliser que des caractères ASCII imprimables, des tabulations et des sauts de ligne (y compris CR et LF). Chaque programme doit contenir au moins 1 caractère.
Votre score est la somme de 1 / taille du programme ^ 1,5. Le score le plus élevé l'emporte. Vous pouvez utiliser cet extrait de pile ( ou ce code CJam ) pour calculer votre score:
function updatescore(a){var l=a.value.split("\n"),s=0;for(var i=0;i<l.length;i++){var t=l[i].length;t-=t&&l[i][t-1]=="\r";if(t)s+=Math.pow(t,-1.5);}document.getElementById('result').textContent=s;}
<textarea id="input" placeholder="Put your code here, one per line." style="width:100%;height:150px;box-sizing:border-box" oninput="updatescore(this)" onpropertychange="updatescore(this)"></textarea><div>Your score: <span id="result">0</span></div>
la source
Réponses:
gs2 , 0,38669200758867045
Supprimez les espaces blancs de tous ces programmes, mais trois , c'est uniquement pour la lisibilité (tousse) . un et six sont des programmes gs2 qui plantent (en débordant la pile), ce qui les rend commodément quines .
un (3 octets)
deux (1384 octets)
trois (92 octets)
Beaucoup d'espace blanc important, voici donc un vidage hexadécimal. Il a un caractère de saut de ligne unique au début:
quatre (276 octets)
cinq (178 octets)
six (3 octets)
la source
20
via7E
,09
(tab),0A
(LF) et0D
(CR), non?1
sur cinq était une faute de frappe; Je suis allé le retirer. Je vais en réparer trois maintenant.CJam, 0,24075
Programmes
Merci à @ user23013 pour sa suggestion d'utiliser
'
pour six .Sortie, longueur, partition, caractères utilisés
Vérifiez vous-même les résultats dans l' interpréteur CJam .
la source
Insomnie , 0,100688383057110116
Juste pour commencer. Il est très peu probable que cela gagne. Dans le cadre du système de notation actuel, toute langue pouvant imprimer
one
en 5 caractères ou moins présente un avantage écrasant.un (8 octets, 0,04419417382415922)
deux (9 octets, 0,037037037037037035)
trois (21 octets, 0,010391328106475828)
quatre (23 octets, 0,009065844089438033)
la source
Headsecks , 0,044623631135793776
Généré ici
Ce langage est une simple substitution BF où la seule chose qui compte est la valeur de caractère modulo 8.
Malheureusement, les programmes plus longs donnent un score moins bon, même s'ils peuvent atteindre douze ! (Je pourrais obtenir plus si je pouvais utiliser ASCII non imprimable et Unicode.)
un
deux
Trois
quatre
cinq
six
Sept
huit
neuf
Dix
Onze
Douze
la source
/// , 0,19245008972987526
Cette réponse est inspirée de la réponse de @ n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳, dans laquelle il a dit
la source
SmileBASIC, .10062
"un"
"deux"
Mon autre réponse est plus intéressante, mais celle-ci obtient un score plus élevé.
Une stratégie importante pour obtenir la chaîne la plus longue consiste à utiliser PLUS de caractères pour enregistrer sur des caractères UNIQUES (par exemple, utiliser
x - -x
dans le programme 2 pour enregistrery + y
pour le programme 3)Le problème avec le système de notation est qu'il marque 2 programmes courts mieux que 3 programmes longs, il n'y a donc aucune raison d'enregistrer des caractères pour des programmes ultérieurs s'il prolonge le programme actuel.
En outre, il valorise les programmes courts individuels supérieurs à une taille TOTALE plus petite. Si j'échange
?
etPRINT
dans ma réponse, je peux enregistrer 1 caractère, mais mon score est DEMI.Je pense qu'il aurait été préférable de le baser uniquement sur le nombre de programmes, avec une taille totale comme bris d'égalité.
la source
o
...