обзор
Рассмотрим следующую задачу:
Учитывая положительное целое число n> 0 , выведите его целочисленный квадратный корень. Целочисленный квадратный корень числа n является наибольшим значением x, где x 2 ≤ n , обычно выражается формулой
floor(sqrt(n))
.Примеры:
25 -> 5
,24 -> 4
,40 -> 6
,1 -> 1
.
Эта задача достаточно проста сама по себе. Однако в этой задаче ваша задача - решить ее на максимально возможном количестве языков, используя набор из 25 символов.
пример
Во-первых, вам нужно выбрать набор (без дубликатов) из 25 байтов. Это может выглядеть примерно так (обратите внимание на начальный пробел):
()*-.05:=>Mabdhilmnqrst|
Тогда ваша задача состоит в том, чтобы, используя только символы из этого набора, построить решение проблемы на максимально возможном количестве текстовых (извините, Piet) языков. Вы можете использовать символы столько раз, сколько необходимо, но вы не должны использовать символы вне набора.
Решения могут быть либо полными программами или функциями , но не фрагментами. Например, используя этот набор символов, я мог бы сделать:
M -> (int) Math.sqrt(M) // Java (lambda expression)
M => Math.sqrt(M)|0 // Javascript (unnamed function)
lambda M: int(M**.5) // Python (lambda function)
Поскольку я использовал 3 языка, это дало бы мне 3 балла .
Пожалуйста, также включите набор байтов, которые вы используете в своем ответе.
правила
- Это вызов розеттского камня - ваш счет - это количество языков, на которые вы отправляете заявку. Самый высокий балл побеждает. Применяются стандартные лазейки.
- Для этой задачи «язык» считается совершенно другим языком программирования - несколько версий одного и того же языка (Python 2, Python 3 и т. Д.) Запрещены.
- Программы должны работать только для входных данных в стандартном целочисленном диапазоне языка.
- Программы с одинаковым исходным кодом (полиглоты) не допускаются.
- Точнее , это набор байтов , а не символов - так что вы можете использовать 05AB1E
£
и Jellyɱ
в качестве одного и того же символа (потому что они имеют одинаковую кодовую точку ).
Пожалуйста, не думайте, что вам нужно победить все остальные решения - если у вас есть интересный ответ, опубликуйте его!
P3 10 10 255
...)[]<>.,+-
- отчетливо отличается от Brainfuck? А как насчет SNUSP , 2D производной Brainfuck? Для них обоих полученный код не будет работать в Brainfuck.Ответы:
20 языков
Используя
()-#*.05;=>^Vefikloqrst
(24 символа) пока:источник
flr.(tt ^.5)
для Wonder (без добавления символов).{}[]
вы можете добавить Brain-Flak. Вот программа~
, вы могли бы сделатьsqrt~~
в Stacked ; он принимает входные данные из TOS и оставляет выходные данные в стеке.isqrt
isqrt
в Юлию не засчитывают, потому что полиглоты не допускаются.10 языков
Набор символов из 19 символов (в CP-1252 ):
Где
␊
представляет собой перевод строки и␍
представляет собой возврат каретки .( Скрипт для проверки персонажей )
Желе, 2 байта
Попробуйте онлайн!
05AB1E, 2 байта
Попробуйте онлайн!
GS2, 2 байта
Попробуйте онлайн!
Джольф, 3 байта
Попробуй это здесь! (лучше всего работает на Firefox)
Japt, 2 байта
Попробуй это здесь!
MATL, 3 байта
Попробуйте онлайн!
Пайк, 3 байта
Попробуй это здесь!
Pyth, 6 байт
Попробуй это здесь!
Оазис, 6 байт
Попробуйте онлайн!
2sable, 9 байт
Попробуйте онлайн!
источник
cU
также работает в Джольфе.c
в список символов. Он уже использует обаm
(в ответе Oasis) иf
(в ответах Japt и Pyke).5 языков
Скоро добавлю больше языков.
Набор символов (22 байта):
Pyth
Javascript
На самом деле
CJam
питон
источник
|
на^
в своем ответе JavaScript, чтобы сохранить байт в вашем наборе символов.5 языков
18 символов.
Я стараюсь не использовать символы алфавита ...
Brainfuck , Brainfuck ++ , Brainfuck-ng , Braintrust , ...
Больше не работает,
224
потому что256
(= (sqrt (225) +1) ^ 2) переполняется.Заменили все
-
s на+
s, чтобы использовать на один символ меньше. (например,-
-> 255+
с)Оригинальная программа
Мозг-Flak
@ WheatWizard код. Спасибо за разрешение!
Мозг-Flueue
Еще один код @ WheatWizard.
Numberwang
Ложка
Согласно мета-консенсусу, этот код должен быть в порядке, хотя в настоящее время нет доступных интерпретаторов.
источник
5 языков
Использование
()*/12 dlinpqrstu
и перевод строки (18 символов) пока.Common Lisp
Встроенная функция.
QBasic
Python 3
Python 3 используется для деления с плавающей запятой без десятичных знаков.
зернышко
Излишне гольфы, чтобы хвастаться унарным оператором инверсии
/
. Принимает ввод от стандартного ввода. Попробуйте онлайн!tinylisp
sqrt
является вспомогательной функцией, аргументы которой: текущее предположениеn
,n
квадрат иinput
число. Еслиinput
меньше чемnsqr
, мы зашли слишком далеко, поэтому вернемn
минус 1; в противном случае выполните возврат, добавив 1 кn
и добавивn + n + 1
кnsqr
. (Математика немного сложнее , потому что tinylisp только имеет вычитание встроенные). Вторая строка определяет нашу действительную функцию, которая принимает одинinput
и возвращает результатsqrt
с ,n
начиная с 1.источник
{}[]
вы можете добавить Brain-Flak. Вот программа6 языков
Использование
retun flosq(agm1)\,i
и расширенные кодовые точкиB1
иBC
до 22 байтов до сих пор.Язык GameMaker
Пайк
Юлия
кленовый
Прикрепленный
TI-Basic (шестнадцатеричный дамп)
Обратите внимание, что 0x72 находится
r
в ASCII.источник
7 языков
24
символы:CJam
Джава
Chaincode
Math ++
усмешка
Прикрепленный
одноколонный
р
Стоит слишком много байтов
питон
источник
R
:sqrt