visão global
Considere a seguinte tarefa:
Dado um número inteiro positivo n> 0 , produza sua raiz quadrada inteira. A raiz quadrada inteira de um número n é o maior valor de x em que x 2 ≤ n , geralmente expresso com a fórmula
floor(sqrt(n))
.Exemplos:
25 -> 5
,24 -> 4
,40 -> 6
,1 -> 1
.
Essa tarefa é fácil por si só. No entanto, nesse desafio, sua tarefa é resolver isso no maior número possível de idiomas, usando um conjunto de apenas 25 caracteres.
Exemplo
Primeiro, você precisa escolher um conjunto (sem duplicatas) de 25 bytes. Pode ser algo como isto (observe o espaço à esquerda):
()*-.05:=>Mabdhilmnqrst|
Seu desafio é, usando apenas caracteres neste conjunto, construir uma solução para o problema no maior número possível de idiomas baseados em texto (desculpe, Piet). Você pode usar caracteres quantas vezes for necessário, mas não deve usar caracteres fora do aparelho.
As soluções podem ser programas ou funções completos , mas não snippets. Por exemplo, usando esse conjunto de caracteres, eu poderia fazer:
M -> (int) Math.sqrt(M) // Java (lambda expression)
M => Math.sqrt(M)|0 // Javascript (unnamed function)
lambda M: int(M**.5) // Python (lambda function)
Como eu usei 3 idiomas, isso me daria uma pontuação de 3 .
Inclua também o conjunto de bytes que você está usando na sua resposta.
Regras
- Este é um desafio de pedra de roseta - sua pontuação é o número de idiomas que sua inscrição inclui. A pontuação mais alta vence. Aplicam-se brechas padrão.
- Para esse desafio, uma 'linguagem' conta como uma linguagem de programação distintamente diferente - várias versões da mesma linguagem (Python 2, Python 3, etc) são proibidas.
- Os programas precisam trabalhar apenas para entradas dentro do intervalo inteiro padrão do idioma.
- Programas com o mesmo código fonte (poliglotas) não são permitidos.
- Para ser mais específico, é um conjunto de bytes , não caracteres - para que você possa usar o 05AB1E
£
e o Jellyɱ
como o mesmo caractere (porque eles têm o mesmo ponto de código).
Por favor, não sinta que precisa superar todas as outras soluções - se você tiver uma resposta interessante, poste-a!
P3 10 10 255
...)[]<>.,+-
- é distintamente diferente de Brainfuck? E o SNUSP , um derivado 2D do Brainfuck? Para os dois, o código resultante não funcionaria no Brainfuck.Respostas:
20 línguas
Usando
()-#*.05;=>^Vefikloqrst
(24 caracteres) até agora:fonte
flr.(tt ^.5)
para o Wonder (sem caracteres adicionais).{}[]
pode adicionar Brain-Flak. Aqui está o programa~
, você poderia fazersqrt~~
no Stacked ; recebe entrada do TOS e deixa a saída na pilha.isqrt
isqrt
em Julia não contava porque poliglotas não são permitidas.10 idiomas
Conjunto de caracteres de 19 caracteres (no CP-1252 ):
Onde
␊
representa um avanço de linha e o␍
representa um retorno de carro .( Script para verificar os caracteres )
Geléia, 2 bytes
Experimente online!
05AB1E, 2 bytes
Experimente online!
GS2, 2 bytes
Experimente online!
Jolf, 3 bytes
Experimente aqui! (funciona melhor no Firefox)
Japonês, 2 bytes
Experimente aqui!
MATL, 3 bytes
Experimente online!
Pyke, 3 bytes
Experimente aqui!
Pitão, 6 bytes
Experimente aqui!
Oásis, 6 bytes
Experimente online!
2sable, 9 bytes
Experimente online!
fonte
cU
também trabalha em Jolf.c
à lista de caracteres. Ele já está usando as duasm
(na sub-resposta Oasis) ef
(nas sub-respostas Japt e Pyke).5 idiomas
Em breve, adicionar mais idiomas.
Conjunto de caracteres (22 bytes):
Pyth
Javascript
Na realidade
CJam
Python
fonte
|
por^
na sua resposta JavaScript para salvar um byte no seu conjunto de caracteres.5 idiomas
18 caracteres.
Estou tentando não usar caracteres do alfabeto ...
Brainfuck , Brainfuck ++ , Brainfuck , Braintrust , ...
Não funciona para mais
224
porque256
(= (sqrt (225) +1) ^ 2) transborda.Substituiu todos os
-
s por+
s para usar um caractere a menos. (por exemplo-
-> 255+
s)Programa Original
Brain-Flak
@ Código do WheatWizard. Obrigado pela permissão!
Brain-Flueue
Outro código do @ WheatWizard.
Numberwang
Colher
Por meta consenso, esse código deve ser bom, mesmo que nenhum intérprete esteja disponível no momento.
fonte
5 idiomas
Usando
()*/12 dlinpqrstu
e nova linha (18 caracteres) até agora.Lisp comum
Uma função interna.
QBasic
Python 3
Python 3 usado para divisão de ponto flutuante sem pontos decimais.
Pip
Desnecessariamente necessário para mostrar o operador de inversão unário
/
. Recebe entrada de stdin. Experimente online!tinylisp
sqrt
é uma função auxiliar cujos argumentos são: a estimativa atualn
, on
quadrado e oinput
número. Seinput
for menor quensqr
, fomos longe demais, então retornen
menos 1; caso contrário, recorra, adicionando 1 an
e adicionandon + n + 1
ansqr
. (A matemática é um pouco complicada porque tinylisp só subtração construído em.) A segunda linha define a função real, que leva uma únicainput
e devolve o resultadosqrt
dan
partir de 1.fonte
{}[]
pode adicionar Brain-Flak. Aqui está o programa6 idiomas
Usando
retun flosq(agm1)\,i
e extendido codepointsB1
eBC
até 22 bytes até agora.Idioma do GameMaker
Pyke
Julia
Bordo
Preso
TI-Basic (despejo hexadecimal)
Observe que 0x72 está
r
em ASCII.fonte
7 idiomas
24
caracteres:CJam
Java
Chaincode
Math ++
Sorrir
Preso
Unilinear
R
Custa muitos bytes
Python
fonte
R
:sqrt