Число - Найдите Программу, Которая Печатает Эту Целочисленную Последовательность (Поток Копов)

  • Автор темы Pavel_Chistyako
  • Обновлено
  • 22, Oct 2024
  • #1

Это тема полицейских. Нить грабителей идет здесь.

Последняя тема уже была 4 месяца назад.

Задача полицейского

  • Задача полицейского — написать программу/функцию, которая принимает положительное (или неотрицательное) целое число и выводит/возвращает другое целое число.
  • Коп должен это заявить, если программа нетерпима к нулю.
  • Полицейский предоставит как минимум 2 пример входов/выходов.
  • Например, если я решил написать Последовательность Фибоначчи, я бы написал это в своем ответе:
 
 
 
 
a(0) returns 0
a(3) returns 2
  • Количество примеров — на усмотрение полицейского.
  • Однако последовательность должна действительно существовать в Онлайн-энциклопедия целочисленных последовательностей®, так что вам не нужен генератор псевдослучайных чисел. [Cracked](link to cracker)
  • Полицейский может спрятать столько персонажей, сколько пожелает.
  • Например, если моя программа:

function a(n) if ### then ######## else ###################### end end
  • Тогда я бы скрыл этих символов, как хочу:

#

Задача грабителя

  • очевидно, нужно найти исходный исходный код.
  • Однако любой предложенный исходный код, который создает тот же набор выходных данных, также считается действительным, если он также находится в OEIS.

Советы полицейским

  • Функция поиска в OEIS работает только для последовательных терминов, поэтому, если вы хотите скрыть свою последовательность, просто оставьте где-нибудь дыру.
  • Видимо, нет способа скрыть последовательность. Имейте это в виду, когда выбираете последовательность.

Ваша оценка — это количество байтов в вашем коде.

Победителем станет работа с наименьшим количеством баллов, которая не была получена за 7 дней.

На победу допускаются только работы, опубликованные в апреле 2016 года. Работы, опубликованные позже этого срока, приветствуются, но не могут быть победителями.

Чтобы претендовать на выигрыш, вам необходимо раскрыть полный код и последовательность OEIS (через 7 дней).

Ваше сообщение должно быть отформатировано следующим образом (NN — количество символов):


Луа, 98 байт

Выход:

a(0) returns 0 a(3) returns 2

Код ( function a(n) if ### then ######## else ###################### end end marks unrevealed characters):

function a(n) if n>2 then return n else return a(n-1) + a(n-2) end end

Если код взломан, вставьте :( in the header. If the submission is safe, insert "Safe" in the header and reveal the full code in your answer. Only answers that have revealed the full code will be eligible for the win.

#полицейские и грабители #номер #последовательность #полицейские и грабители

Pavel_Chistyako


Рег
28 Aug, 2005

Тем
72

Постов
199

Баллов
569
  • 26, Oct 2024
  • #2

Вим, 36 нажатий клавиш -- Безопасно!

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 hSmX$s 

(Примечание: a(2) = 8 a(8) = 80 a(10) = 120 is where you type your input)

Вот код, не связанный с генерацией чисел:

###X#s

То есть я раскрываю 5 из 19 персонажей.

!m is the input. Here are some sample outputs:

l fzxd!m%xH

Отвечать

Этот код печатает числа Лукаса (А000032), которые аналогичны последовательности Фибоначи, за исключением того, что они начинаются ####xd###x# instead of a(10) = 4 a(20) = 6 a(30) = 8 . Вот первые 15 цифр:

####O

Вот раскрытый код:

a(0) = 0 a(1) = 1 a(2) = 6 a(3) = 24 a(4) = 80 a(5) = 240

Объяснение:

1 -> 2 2 -> 3 3 -> 5 4 -> 7

Пояснение макроса:

1

Теперь нам просто нужно удалить второе число, поскольку первое число — это нужный нам номер Лукаса. Итак, мы делаем

L?Jtb##5#m##S#2 #y

А еще, если не ошибаюсь, это первая безопасная подача! Это круто.

 

Mayachkinv


Рег
06 Apr, 2020

Тем
85

Постов
201

Баллов
636
  • 26, Oct 2024
  • #3

05AB1E, 5 байт, безопасно

Последний на сегодня :с. Выход:

#

Код:

2_3:~2@^^`

Запутанные символы обозначаются значком #_####@^#` . Try it online!-link. Uses CP-1252 кодировка.


Решение:

#

Объяснение:

a(3) = 6561 a(4) = 4294967296

Попробуйте онлайн! или «Попробовать для всех тестовых случаев!».

 

Rewkrev


Рег
12 Jul, 2014

Тем
75

Постов
184

Баллов
559
  • 26, Oct 2024
  • #4

Элемент, 7 байт, треснутый

Выход:

f(1) == 1 f(18) == 6

_ are hidden characters, and they are all printable ASCII. I think this one is actually reasonably difficult (for only having 5 missing characters).

_

Для удобства вот Попробуйте онлайн и Эсоланг вики страницы.


Моя первоначальная программа была:

a

Хитрость в том, что

a and b функционально идентичны (оба переводятся на a in Perl). Also, I used a произвести char as an additional layer of confusion, although it is possible to ignore the a;*b=(char*)&a+1; main(i){scanf("%d",&a); for(i=1;i++/4<2;)a*=2; printf("%d",*b);} полностью, делая a(0) = 0 a(1) = 0 a(2) = 1 a(3) = 1 a(4) = 2 a(5) = 2 a(6) = 3 a(7) = 3 a(8) = 4 instead.

 

P_Box


Рег
08 Feb, 2008

Тем
66

Постов
176

Баллов
546
  • 26, Oct 2024
  • #6

JavaScript (ES7), 10 байт, Треснутый

Выход

R

Код

wR}

Проверяйте это в Firefox каждую ночь. Код представляет собой анонимную функцию. Вероятно, это будет легко, поскольку скрыто всего три символа, но, по крайней мере, оно короткое! :П


Мой исходный код был:

wR}DSR_Q*L+#P)l

но после того, как я перебрал свой собственный код для решения, я вскоре понял

#R#D######+##)# (where a(2) = 21 a(15) = 17 может быть любым символом имени переменной)

также можно было бы использовать. Это работает, потому что

в исходной спецификации оператора возведения в степень ES7 этот оператор имел более низкий приоритет, чем унарные операторы (в отличие от традиционной математики и большинства других языков). a=function(n)return n%2>0 and 0or 1+a(n/2)end performs a bitwise NOT on a=function(n)#####n###### and #or ########end ( # ) or a(1)=>0 a(2)=>1 ( a(0) will make the program crash :) ) which casts them to a 32-bit signed integer (uncastables like these become a(1) = 2 a(4) = 6720 ) перед выполнением НЕ (так что ____ becomes _ ). Я изучил это подробнее, и совсем недавно спецификация была изменена, чтобы запретить подобные двусмысленные ссылки (нехорошо для будущей игры в гольф D:), однако большинство движков ES7 еще не обновились до последней версии спецификации.

 

Nfhfynek67


Рег
12 Nov, 2019

Тем
77

Постов
240

Баллов
655
  • 26, Oct 2024
  • #7

05AB1E, 4 байта (Треснутый)

Пример вывода:

_____

И для кода:

a(0) = 0 a(1) = 0 a(2) = 1 a(3) = 1 a(4) = 1 a(5) = 1 a(6) = 1 a(7) = 1 a(8) = 1 a(9) = 1 a(10) = 0 a(11) = 0

Я раскрыл последнее. Хотя это должно быть достаточно легко, мне было довольно трудно найти последовательность :(

Все скрытые символы можно распечатать.

 

SheexoxSype


Рег
30 Mar, 2020

Тем
83

Постов
204

Баллов
649
  • 26, Oct 2024
  • #8

MATL, 5 байт, треснутый

Скрытые символы обозначаются значком ->#{(s=#########).sum==#3333&&eval(s)}[3] => 30 ->#{(s=#########).sum==#3333&&eval(s)}[10] => 100 .

->#{(s=#########).sum==#3333&&eval(s)}

Выход:

#

Вход a(2) -> 10 a(4) -> 19 is valid.


Исходный код:

DhbI|qb"4"qb"0"R!1Iqb"1"R!0Rh+""sm^sd2cb1;W<lY+Q1Ih+""Z=Y+YZ)=Z+Z1;@YQ

то есть,

# ||answer||

СВИФТ, 55 байт, Треснутый

DhbI|qb"#"qb"#"R!1Iqb"#"#####+""s####2###;##lY+Q1Ih+""Z#####)=Z+Z1;@YQ

a(1) = 0 a(2) = 0 a(5) = 1 a(6) = 1 a(7) = 1 a(9) = 2 marks a hidden character

Выход:

############ ##### main(){ scanf("%d",##); ###6#; printf("%d",##); }

Функция принимает ans(1)

 

Aleksyr


Рег
16 Nov, 2004

Тем
75

Постов
204

Баллов
609
  • 26, Oct 2024
  • #9

Ruby, 46 байт, безопасно

Отредактируйте, чтобы добавить отказ от ответственности/извинения: эта последовательность начинается с f[0], а запись OEIS начинается с f[1]. Ценности те же.

Запутанный код ( ans(1) = 0 ans(6) = 5 ans(7) = 10 ans(8) = 15 is any character):

@(m)(m###m#####m##)&isprime(#)####

Позвоните как

import java.util.*; public class A { public static interface B { //functional interface for lambda expression public boolean C(int i); //void would have given it away } static A a = new A(); //distraction public static void main(String[] args) { int input = Integer.parseInt(args[0]);//Input LinkedList<Integer> l = new LinkedList<>(); l.add(1);//Set up list l.add(0); l.add(0); for (int ix = 0; ix < input; ix++) cif(i -> { //Fake if statement is really a lambda expression return l.add(l.pop() + l.peekFirst() + l.peekLast()); }); { //Distraction } System.out.println(l.get(1));//Output } static boolean cif(A.B b5) { //Used to pass in lambda expression. //The A. and b5 were both distractions return (b5.C((0))); } }

Выход:

import java.util.*; public class A{ public static interface B{ public boolean C(int i);} static A a = new A(); public static void main(String[] args){ int input = Integer.parseInt(args[0]); LinkedList<Integer> l = new LinkedList<>(); l.add(1); l.add(0); l.add(0); for(int ix = 0; ix<input; ix++)cif(i-> { return l.add( l.pop()+l.peekFirst()+l.peekLast());});{ } System.out.println(l.get(1));}static boolean cif(A.B b5){return (b5.C((0))); } }

Решение:

\t

Последовательность:

http://oeis.org/A029858

Объяснение:

Небольшой трюк здесь в том, что мы объявляем параметр как \t rather than import java.util.*; public class A{ public static int######### public boolean########### static A a = new A(); public static void main(String[] args){ int input = Integer.parseInt(args[0]); LinkedList<Integer> l = new LinkedList<>(); l.add(1); l.add(0); l.add(0); for(int ix = 0; ################if(##>##{ ###########d# #######+##p##########+##########(####### } System.out.println(######################### ###(A.#############(#5#####))); } } . Это означает, что если вы пройдете # , a(10) = 81 a(20) = 35890 установлено на 3L2^Ze*sk 3L % Push [1 -1j] from the clipboard 2^ % square Ze % exp * % times input s % sum k % floor ...at first. The главный трюк использует причудливый и совершенно непонятный синтаксис Ruby, где вы можете установить итератор в цикле for на любую допустимую левую часть выражения присваивания вместо переменной-итератора, например a(0) . So this loops through from 0 to (in this example) 2, assigning each number to a(1) = 3 a(2) = 6 a(4) = 12 a(12) = 37 , что означает, что оно перезаписывает последнее значение x. Затем тело цикла 3#2###*## , further mutates x by concatenating it to itself 3 times. So first x becomes 0 -> 1 12 -> 1618033988749 , затем c*^c"10"x~P . On the next loop it becomes c*______x__ c*mf^+91x~P , затем 0 . Finally we pass in 2 and it becomes 1 , затем echo(int)($r=sqrt(8*$argv[1]+1))==$r?1:0; . We then sum the result using the ____________________$argv[1]____________; #################### ############ метод, который уменьшает массив, применяя a(5) = 0 a(15) = 1 a(35) = 0 a(36) = 1 a(45) = 1 (the passed in method) to each element in turn. If we consider how each iteration changes the sum, we see that we effectively add 1 (by overwriting the last element with an element one higher), then multiply by 3. Since ? # # # # # @ , это реализует рекуррентное соотношение Александра Вайнберга для последовательности, как описано на странице.

 

Keshka002


Рег
15 Feb, 2016

Тем
78

Постов
184

Баллов
604
  • 26, Oct 2024
  • #10

05AB1E, 3 байта, треснутый

Выход:

?#####@

Скрытый код:

a(1) = 2 a(2) = 4

Попробуйте онлайн, может пригодиться.

 

JeremyMi


Рег
13 Apr, 2014

Тем
71

Постов
193

Баллов
548
  • 26, Oct 2024
  • #12

PHP, 41 байт, треснутый

Да, наконец-то еще один вызов «Полицейским и грабителям». Надеюсь, я не сделал это легко.

Выход

+

Источник

inject

Примечания


Треснутый

Я, очевидно, упростил задачу и привел недостаточно примеров. Последовательность, которую я имел в виду, была А010054:

a(n) = 1, если n — треугольное число, иначе 0.

Вот мой исходный код:

[0, 0, 1, 0, 0, 1, 0, 0, 2, 0, 0, 1, 0, 0, 1, 0, 0, 2, 0, 0, 1, 0, 0, 1, 0, 0, 2]

Он проверяет, является ли ввод треугольное число и результаты [0,0,1,0,0,1,0,0,2] or [0,0,1,0,0,1,0,0,1] соответственно.

 

T4uudajh


Рег
10 Sep, 2009

Тем
75

Постов
178

Баллов
593
  • 26, Oct 2024
  • #13

Йольф, 11 байт, Треснутый , А011551

[0,0,1]

Исходный код:

[0,0,0]

Примеры:

[0] ||answer||

MATL, 9 байт, Треснутый

Код:

x*=3

Выход:

x[-1]

i is valid.


Треснутый

Исходная последовательность: А059563

Исходный код:

[2] ||answer||

Java, 479 байт, Треснутый

Выходы:

x

(Вводные данные предоставляются через аргументы командной строки)

Код ( 2 marks hidden characters):

x

Программа начинается с индекса 0.

(Обратите внимание, что SE заменяет все *x indents with 4 spaces, bringing the byte total to 569. Click здесь чтобы увидеть программу с f=->*x{for x[-1]in(0..x[0]);x*=3;end;x.inject:+} indents instead of space indents.)

Исходный код:

f[0] = 0 f[1] = 3 f[2] = 12 f[3] = 39 f[4] = 120 f[5] = 363 f[6] = 1092 f[7] = 3279 f[8] = 9840 f[9] = 29523

(Тот же код, но отформатирован нормально):

->####or x##1###(#..##0#);x*=3;end;#.###ect:+}[3] (returns 39) ||answer||

Октава, 34 байта, треснутый

->####or x##1###(#..##0#);x*=3;end;#.###ect:+}

Выходы:

#

Последовательность начинается с 0 in OEIS.

 

Elf2036


Рег
25 Apr, 2011

Тем
69

Постов
183

Баллов
548
  • 26, Oct 2024
  • #14

С, 71 байт треснутый

M(30) -> 91 M(60) -> 91 M(90) -> 91 M(120)-> 110 M(150)-> 140

Выход:

*

Это работает с gcc и является полноценной программой. Он принимает 0 в качестве входных данных.

 

Sema555


Рег
12 Aug, 2007

Тем
72

Постов
166

Баллов
546
  • 26, Oct 2024
  • #15

Пиф, 70 байт, Треснутый

func M(n:Int)->Int{ return(n*****) ?M(**n****):n***; }

35 % push number 35 B % convert to binary: array [1 0 0 0 1 1] * % multiply element-wise by implicit input n: gives [n 0 0 0 n n] s % sum of array: gives 3*n are the hidden characters

Был взломан, вот версия без скрытых символов:

35B*s

Примеры результатов:

0

Удачи в поиске этого в OEIS, лично мне не удалось найти это в этих примерах (хотя последовательность довольно легко обнаружить).

 

Andrewd


Рег
05 Nov, 2004

Тем
88

Постов
218

Баллов
678
  • 26, Oct 2024
  • #16

Рубин, 38 байт, треснутый

Запутанный код ( a(1) = 3 a(2) = 6 a(4) = 12 can be any character):

%5%*%

Выход:

Умножает введенное значение на 10 (A008592). Работает для любого целого числа, включая 0. например.

% ||answer||

05AB1E, 5 байт, треснутый

Выход:

###^

Запутанный код:

a(5) = 51 a(8) = 257

Попробуйте онлайн!-ссылка.

 

Drap


Рег
10 Feb, 2012

Тем
81

Постов
216

Баллов
631
  • 26, Oct 2024
  • #17

05AB1E, 4 байта, треснутый

Ну тогда я думаю, что пристрастился к CnR... Запутанный код ( -1 indicates a wild card):

0

Последовательность:

0

Последовательность в ОЭИС начинается с a(1) = 2.

Попробуйте онлайн! - ссылка

 

Mar33872403


Рег
14 Apr, 2020

Тем
78

Постов
184

Баллов
624
  • 26, Oct 2024
  • #18

Луа, 45 байт, Треснутый

Небольшая подсказка:

Object

Выход

top

Код

Использование undefined to hide the code :).

t.x

Я использовал OEIS А007814, со следующим кодом:

~ ||answer||

Пайк, 15 байт, БЕЗОПАСНО

Выход

x

Раскрытый код:

t=>~t.x**t

Решение:

ОЭИС А038822
t=>~top**t
Я использовал здесь пару отвлекающих маневров, используя t=>~t##**# to generate the number 100 and revealing the character f(0) -> 1 f(1) -> -1 который обычно используется для поворота стека. я также использовал mPm$x mP cube m$ catalan number x input instead of the more simple ####x подсчитать количество простых чисел в последовательности.

 

Asmoday


Рег
22 May, 2008

Тем
84

Постов
205

Баллов
635
  • 26, Oct 2024
  • #19

C, 82 байта, безопасно

a(2) = 8 a(10) = 4738245926336

Работает с gcc и представляет собой полноценную программу, которая считывает входные данные со стандартного ввода и выводит выходные данные на стандартный вывод. Здесь последовательность — A004526, этаж(n/2).

,1

Решение:

,

Это работает только на машинах с прямым порядком байтов и только если размер 1 is 1 byte.
И только если байт выше, чем байт старшего порядка ,$ has value 0. I think this is true for gcc since by default uninitialized global variables go into the bss segment, and initialized global variables go into the data segment (see https://stackoverflow.com/questions/8721475/if-a-global-variable-is-initialized-to-0-will-it-go-to-bss).
Так что только } goes into bss (the only other global variable } инициализируется и таким образом попадает в сегмент данных). Если ] is not at the end of bss, then the byte higher than the highest order byte of _'[,$`} также находится в bss и поэтому имеет значение 0.

 

Alexjazzman11


Рег
28 Nov, 2019

Тем
60

Постов
179

Баллов
499
  • 26, Oct 2024
  • #20

05AB1E, 1 байт, взломан

###,##}

# denotes hidden code.

a(3) = 111 a(7) = 1111111 ||answer||

Элемент, 10 байт, треснутый

Выход:

žh # Short for [0-9]. žm # Short for [9-0]. ‡ # Translate.

Вероятно, существует всего несколько способов вычислить эту последовательность в Element. Я нашел решение из 9 символов, но решил, что решение из 10 символов на самом деле сложнее. žhžm‡ are hidden characters.

_

Для удобства вот Попробуйте онлайн и Эсоланг вики страницы.


Оригинал был

___m_ ||answer||

Пиф, 18 байт

a(0) = 9 a(5) = 4 a(10) = 89 marks unrevealed characters.

b "move (b)ack D "(D)elete to the end of the line.

Выходы (начинается с ^ "Move to the first non-whitespace character on the line. diw "(d)elete (i)nner (w)ord. This is different then 'dw' because it doesn't grab the space. "It also throws people off since 'i' is usually used for inserting text. wyw$ "Move to the next number, yank it then move to the end of the line pb "(p)aste the yanked text and move (b)ack @- <c-a> "@- is the register holding the word we deleted. Increment the current number that many times. <c-v> "Since we're adding <c-a> this from the command line, we need to type it as a literal. ):

i2 1 <esc> "Insert the starting numbers :let @q="....."<cr> "Define the macro 'Q'

Онлайн переводчик

 

Iplat


Рег
19 Mar, 2020

Тем
75

Постов
201

Баллов
606
  • 26, Oct 2024
  • #21

05AB1E, 5 байт, треснутый

Я надеюсь, что это представление не такое простое, как другие :p. Выходы:

i2 1 <esc>:let @q="^diwwyw$pb@-<c-v><c-a>"<cr><n>@qbD

Запутанный код:

2, 1, 3, 4, 7, 11, 18, 29, 47, 76, 123, 199, 322, 521, 843

Однако содержит некоторые символы, отличные от ASCII, использует CP-1252 кодировка.

Попробуйте онлайн! может пригодиться :с.

 

Pletchervkr40


Рег
30 Jan, 2012

Тем
72

Постов
189

Баллов
559
  • 26, Oct 2024
  • #22

Йольф, 11 байт, Треснутый.

Выход:

1, 1

И частично скрытый код:

2, 1

Намекать:

Просматривая последовательности по порядку, я не продвинулся далеко, прежде чем нашел эту.

Взломанная версия не совсем такая же, как мой исходный код. Я сейчас не за компьютером, поэтому у меня его точно нет, но было примерно так:

1@q: 1 2@q: 3 6@q: 18

(Единственное, в чем я не уверен, это <n> . It's whatever checks if a variable is zero.)

 

Delets.liuda


Рег
03 Dec, 2019

Тем
84

Постов
212

Баллов
642
  • 26, Oct 2024
  • #23

Пайк, 6 байт, Треснутый

:let @q=" "<cr><n>@qbD

Выход:

<n>

Это не работает с N<1

Оригинальное решение:

i****<esc>:let @q="^*i****$**@***"<cr><n>@qbD

 

Astrosofter


Рег
20 Jul, 2012

Тем
88

Постов
183

Баллов
653
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно