Eu pedi ao random.org 128 números inteiros aleatórios entre 0 e 2 32 - 1. Como o gerador de números aleatórios estava tão ansioso para fornecer os primeiros 64 números primeiro, eles são obviamente mais aleatórios do que os outros 64.
Escreva um programa ou função completa que retorne um resultado verdadeiro quando um dos 64 números inteiros a seguir for inserido:
[1386551069, 1721125688, 871749537, 3410748801, 2935589455, 1885865030, 776296760, 614705581, 3841106923, 434616334, 1891651756, 1128215653, 256582433, 310780133, 3971028567, 2349690078, 489992769, 493183796, 3073937100, 3968540100, 777207799, 515453341, 487926468, 2597442171, 950819523, 1881247391, 3676486536, 3852572850, 3498953201, 2544525180, 297297258, 3783570310, 2485456860, 2866433205, 2638825384, 2405115019, 2734986756, 3237895121, 1560255677, 4228599165, 3106247743, 742719206, 2409129909, 3008020402, 328113612, 1081997633, 1583987616, 1029888552, 1375524867, 3913611859, 3488464791, 732377595, 431649729, 2105108903, 1454214821, 997975981, 1764756211, 2921737100, 754705833, 1823274447, 450215579, 976175934, 1991260870, 710069849]
E um resultado falsey para os outros 64 números:
[28051484, 408224582, 1157838297, 3470985950, 1310525292, 2739928315, 3565721638, 3568607641, 3857889210, 682782262, 2845913801, 2625196544, 1036650602, 3890793110, 4276552453, 2017874229, 3935199786, 1136100076, 2406566087, 496970764, 2945538435, 2830207175, 4028712507, 2557754740, 572724662, 2854602512, 736902285, 3612716287, 2528051536, 3801506272, 164986382, 1757334153, 979200654, 1377646057, 1003603763, 4217274922, 3804763169, 2502416106, 698611315, 3586620445, 2343814657, 3220493083, 3505829324, 4268209107, 1798630324, 1932820146, 2356679271, 1883645842, 2495921085, 2912113431, 1519642783, 924263219, 3506109843, 2916121049, 4060307069, 1470129930, 4014068841, 1755190161, 311339709, 473039620, 2530217749, 1297591604, 3269125607, 2834128510]
Qualquer entrada que não seja um desses 128 números é um comportamento indefinido.
Se sua solução for encontrada programaticamente, compartilhe também o código usado para gerá-la!
Isso é código-golfe , então a solução mais curta em bytes vence.
code-golf
number
random
classification
decision-problem
lirtosiast
fonte
fonte
"Maybe, not enough information."&
33 bytes, responde à pergunta.[4 20 79]
de[8 18 100]
pode ser feito com[99 79 20 17 7 4]
(veja se você consegue identificar o padrão). Claro, a metade inicial da sua resposta pode usar um módulo muito menor do que a entrada, mas a metade traseira consiste em mudar um elemento de cada vez.Respostas:
CJam,
535247 bytesHá imprimíveis, mas as duas seqüências podem ser obtidas por
respectivamente. Isso também mostra que os pontos de código estão abaixo de 256.
Esta é uma resposta em cadeia do módulo, onde aplicamos os seguintes módulos ao número inteiro de entrada, em ordem:
Como essa lista contém números inteiros maiores que 255, a lista é codificada usando dois caracteres cada. A decodificação é feita por
2/Dfb
, que divide a cadeia em pedaços de comprimento dois e converte cada um a partir de um número base 13 (por exemplo88*13 + 9 = 1153
). No entanto, existem duas exceções à decodificação:136
) não está incluído (veja abaixo),242
) é menor que 256 e a divisão de uma matriz de tamanho ímpar em pedaços de tamanho 2 deixará uma matriz de tamanho 1 no final. Obrigado a @ MartinBüttner por esta dica!Depois que os módulos reduziram o número inteiro de entrada para um número relativamente pequeno, realizamos uma pesquisa em uma tabela. Essa tabela é codificada através da segunda string, que é convertida em um
312
número base e, em seguida, decodificada na base 2, que indexamos. Como a indexação de array do CJam é finalizada, podemos deixar de fora o módulo final, como mencionado anteriormente.Experimente online | Suíte de teste
fonte
Retina , 117 bytes
Uma resposta de golfe regular, produzindo um número inteiro positivo para verdade e zero para falsidade.
Experimente online! | Conjunto de teste - verdade | Conjunto de teste - falsy | Regex101
fonte
JavaScript (ES6) 233
Uma função anônima retornando 0 como
falsy
e diferente de zero comotruthy
Verificando os últimos 3 dígitos na representação numérica na base 36.
A cadeia de verificação é criada para:
Teste
fonte
Mathematica,
218217 bytesPor qualquer motivo, existe um conjunto de módulos que nos permite distinguir dois conjuntos, independentemente de, após a aplicação dos módulos, o resultado ser zero ou não. A longa lista de módulos foi gerada por este programa:
A primeira saída são os módulos, a segunda e a terceira saídas são as duas listas, tendo aplicado os módulos. As duas longas listas são os conjuntos.
fonte
PowerShell, v3 + 194 bytes
Uma abordagem um pouco diferente, então achei que a publicaria. Não vai ganhar mais, mas pode dar a outra pessoa idéias para encurtar seu código.
Ainda estamos pegando o número inteiro de entrada
$args[0]
e aplicando operações de módulo a ele, então nada de diferente lá. No exposto, estamos usando o-in
operador (daí o requisito v3 +), para que isso produzaTrue
valores que estão no caso de teste de verdade.No entanto, estou tentando encontrar matrizes resultantes nas quais podemos aproveitar a
..
função de intervalo para reduzir a contagem de bytes, e ainda assim ter matrizes distintas entre os valores de verdade e falsey. Podemos fazer isso, pois um comportamento diferente da entrada truthy / falsey é indefinido; portanto, se o intervalo capturar valores fora da entrada truthy / falsey, não importa a saída.Até agora, é um processo bastante manual, pois o objetivo é tentar encontrar o módulo em que uma das matrizes de verdade ou falsey tem grandes intervalos entre números e a outra matriz possui grandes quantidades de números nessa diferença. Eu tenho andado principalmente por intuição e pressentimento até agora, mas posso eventualmente escrever um bruto para resolver isso. A descrição acima é a mais curta que encontrei (principalmente manualmente) até agora.
fonte