Изменить: разрешено повторное использование пробелов.
Ваша задача - написать n программ (или функций, или наборов функций без использования параметров или имен функций) на одном языке. Программа k должна вывести (кардинальное) число k на стандартном английском языке в нижнем регистре (с дополнительным завершающим переводом строки). Поэтому первая программа должна выводить one
, вторая должна выводить two
и т. Д. Для числа, состоящего из двух частей, они должны быть разделены дефисом twenty-one
.
Но никакие две программы в вашем представлении не могут совместно использовать непробельные символы или пробельные символы, выполняющие полезные работы. Например, если ваша первая программа просто "one"
, то ни один из "
o
n
и e
не может быть снова использован в других ваших программах.
Вы можете использовать пробельные символы (пробелы, символы новой строки и табуляции) в двух или более программах, если они служат только в качестве разделителей или отступов и ничего не делают сами. Таким образом, вы не можете использовать их повторно на языке Whitespace и не можете использовать их в строках более чем в одной программе.
Вы можете использовать только печатные символы ASCII, вкладки и символы новой строки (включая CR и LF). Каждая программа должна содержать как минимум 1 символ.
Ваша оценка равна сумме 1 / размер программы ^ 1,5. Самый высокий балл выигрывает. Вы можете использовать этот фрагмент стека ( или этот код CJam ) для подсчета очков:
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>
источник
Ответы:
gs2 , 0,38669200758867045
Удалите пробелы из всех этих программ, кроме трех , это только для (кашляет) читабельности. один и шесть - это программы gs2, которые аварийно завершают работу (из-за недостаточного заполнения стека), что делает их удобными .
один (3 байта)
два (1384 байта)
три (92 байта)
Много значительных пробелов, так что это шестнадцатеричный дамп. В начале он имеет символ перевода строки:
четыре (276 байт)
пять (178 байт)
шесть (3 байта)
источник
20
через7E
,09
(вкладка),0A
(LF), и0D
(CR), не так ли?1
В пяти была опечатка; Я пошел и удалил это. Я сейчас исправлю три .CJam, 0,24075
программы
Спасибо @ user23013 за его предложение использовать
'
для шести .Вывод, длина, оценка, используемые символы
Проверьте результаты самостоятельно в интерпретаторе CJam .
источник
Бессонница , 0.100688383057110116
Просто для начала. Маловероятно, что это победит. В соответствии с текущей схемой подсчета любой язык, который может печатать не более
one
5 символов, имеет огромное преимущество.один (8 байтов, 0,04419417382415922)
два (9 байтов, 0,037037037037037035)
три (21 байт, 0,010391328106475828)
четыре (23 байта, 0,009065844089438033)
источник
Наушники , 0.044623631135793776
Сгенерировано здесь
Этот язык представляет собой простую замену BF, где единственное, что имеет значение, это значение символа по модулю 8.
К сожалению, более длинные программы дают худший результат, несмотря на то, что они могут достичь двенадцати ! (Я мог бы подняться выше, если бы мог использовать непечатаемые ASCII и Unicode.)
один
два
три
четыре
5
шесть
Семь
восемь
9
10
11
двенадцать
источник
/// , 0.19245008972987526
Этот ответ вдохновлен ответом @ n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳, в котором он сказал
источник
SmileBASIC, .10062
"один"
"два"
Мой другой ответ более интересен, но этот получает более высокий балл.
Важной стратегией для получения самой длинной цепочки является использование БОЛЕЕ символов для сохранения УНИКАЛЬНЫХ символов (например, использование
x - -x
в программе 2 для сохраненияy + y
в программе 3)Проблема с системой подсчета очков состоит в том, что она оценивает 2 короткие программы лучше, чем 3 длинные программы, поэтому нет смысла сохранять символы для более поздних программ, если она делает текущую программу длиннее.
Кроме того, он оценивает отдельные короткие программы выше, чем меньший ВСЕГО размер. Если я поменяюсь
?
иPRINT
в своем ответе я смогу сохранить 1 символ, но мой результат будет ПОЛОВИННЫМ.Я думаю, что было бы лучше основывать его только на количестве программ, с общим размером в качестве тай-брейка.
источник
o
...