Выведите Два Числа (Тема Грабителей)

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

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

В полицейская тема В этом задании ответчики будут писать программы, которые выводят два числа: \$x\$ и \$y\$. Ваша цель как грабителей — взломать их материалы. Для этого вам нужно найти программу на том же языке, что и программа полицейского, которая выводит число между \$x\$ и \$y\$ и имеет такую ​​же длину, как и программа полицейского, или короче. Ваша программа должна использовать тот же метод вывода, что и сообщение полицейского.

Вы отправляете эту программу сюда и уведомляете полицейского в комментарии к его ответу.

За каждый ответ, который вы дадите здесь, вы получите 5 баллов. В качестве дополнительного стимула вы получите дополнительный балл за каждый байт, который ваша программа короче программы полицейского. Если ваша программа имеет одинаковую длину, это нормально; вы все равно получите 5 баллов.

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

#полицейские и грабители #номер #полицейские и грабители #занятой бобер

Kseni


Рег
27 Feb, 2008

Тем
82

Постов
185

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

Мальбольге, 6 байт, трещины Ответ Камилы Шевчик

 
 
 
 
 
 
 
 
 
 
 
 
 
 ~(#)
 

Попробуйте онлайн! (или попробовать здесь чтобы избежать тайм-аута)

Выходы 2.

Объяснение.
Цель состоит в том, чтобы вывести символ ASCII " print(3*10**456570) " in a 7-byte or less program.

Код и данные Malbolge занимают одно и то же пространство памяти. Когда загружается программа Malbolge, последние две однобайтовые инструкции действуют как «начальные числа», которые определяют, как инициализируется оставшаяся память (детерминированным, но довольно неконтролируемым образом). Итак, если мы попытаемся создать 5 командно-байтовых программ, которые используют содержимое памяти для генерации кодировки ASCII для " 48 136118222288577729572552152791709368605773628347021471008690822115373392141244799774415998107055377981742447271161172093778621602759645881735548840779482802560209189517746243033627985739511100518293138471484155429274889918272710559291982273929396912514475806069037521031407489333870378703173662910402083164029699758795021006600087782123480276870349030965867563726975877728510764214971834340717031826050329624446895168002822671009104546726772407954859794475567312583905626817398451742396403319735329821368897163429801670218889821848435198982270769585133239840182076928600225425386926305906233725574337009104530356853863448383654832344408718772724757372631143287400290703116853900133240035664821661976772888810467002790969870927064001031662898740474966711631710727286951427698675681491111582579107155062882709864229052873760966169264245600186093538370974908907020474070930611562816292100183878427364763405389786799631792649382212389347264227332059441821014321577413408905755610100524739302573178913805937883513832378054230283344383753275902621779919104894612137194747465109053363132937703205299899090062685892622098070989799300096851455096301228710972701865038051936551041342440525433281771038877777161882636844059426594521805350407152290165733138028576146967247522643744694141195004623423857857693427850032738203686267421228588828435013088446245077772203162760491431357812801871298876631302950079959010177847566668826266369346040779302669462790393198104623019338124802383380441313038602352462845958086644089497490467594136351122837597449672487010313897868432189301305885675861325709179122431375903938149903427353406026693988298068066087414204535567217531278847246663063521026232422013930241593518848232749733716027932971967899916260405600669083231342566885341691912368360136490149146410247155251733391927312938665018633466748949229241307444214633067906713336048685943513134140263372359696945716406670478168007378272916725550905826132341140883161990841937113616809856754859509173906225877693272986499970529936397933788880924831441272134709649991804869975215537765013304261103280798035738449283801074367455416975896866833656686794976325679828000354046625307811860168996790355272279436375392093313679100121487235860221918848736347751782535229777178218227648706506003129525970134666691479694925217524902959803338422438060038658440582225592904612537669959087757488373578611752282868269275950214371229748731729215641332246654869362216109284862185496124584262579953474203167872603070470067950478753207808608248943878860011908115468802190546000519840247324568161439611525769820989196058123147718137077000120913662868599382356603269721601449988482683980532792892177658333875496383645485133701798213530386049902190319666619680418627484562095523349838908554879800729189834397636333150687591784783593636695475815080002634570530677847790228554244311329470586241698758265462755938042304017099033993858637076639260904636077951244351657896256391998258900387543477862789459882688297086948688007197707992577339183010173354065933555655553421866069534486864447491231024219783356908661520568506172333653043056654975852125377780460189002009695349728259441892176823884813139372756407875800289098734167129099381792737264454097003678873187452677901588877289663613161551851497712147029113595405001612731177702538079055158748598170770058186080901509151495332123511968083584199679029073876741472874261160159173180904406481520378171876773781817052362670957754076341052151226864982044423001068087857032658832611786035188675526138932008287577260700322890640413383485742814765880396419208969263227721270455088178847430617675460588467868983618120954389404362140231158416321704501412371098629111850576048849097883084678663620297477847964712187292115607313892012356396662805274189107494467684644891521782414262128173708455480707454354968100553678330533006106890027275388315886464487511584246560889155661821779830187538375406868333151665726444207031130208083500148213129337075506341798868095841311106337887887291979827246042278337117981115263174824668396544795084846659779500193321324649508077325582071348037416574693493790019348532848623137704882189995492207319495341511822520469501170794388924439459462165936478786200751196030621197856797511117488998623310034898658778486649937046992404397946797175451641601275425983240032855623615931663152448038884938302103599522781131691794955910668601656339114328483085213740867710698818388423094906297631419655436847220572682142406966844544894284269328182913703189411753835932978396033829515305455631318696053728968876051410783596705077112312728424202529475578776676152981258884551184505959739004252170359641105692336889964755135425463797747654176970663980003607348930037794652574271713970 ", we can try different combinations of the remaining 2 commands/bytes to try to find one that gives the correctly-initialized memory to achieve this. There are 8 valid Malbolge commands (and any other byte in the program will generate an error upon loading), so this gives us 8x8 combinations to try per 5 byte program. This is obviously less than the 1/256 chance of 'hitting' the ASCII character " n^ceiling(log(1.7e308,n)) " в любом конкретном байте, поэтому нам, вероятно, придется попробовать более одной программы.

Каждая команда Malbolge самомодифицируется сразу после выполнения, что затрудняет повторное использование. Итак, здесь мы пробуем только однопроходные программы, без каких-либо попыток зацикливания. Нам нужно будет использовать команды log(1.7e308,n) (set the data pointer), n (запишите значение ASCII на вывод) и (вероятно) 28^213 (end the program). This gives us room for 2 more data-altering commands in within the 5-byte limit, so we can try combinations of -[>+<-----]>++. (поворот) и x=>'909'.repeat(1e7/3) (tritwise OP operation), as well 1e7-1 (никакой операции; но в Malbolge это изменяет указатель данных как побочный эффект, поэтому это также может повлиять на вывод).

К сожалению, после перебора всех 64 комбинаций последних двух байтов в программах Malbolge 9999999 , x=>'9'.repeat(1e7-1)-1 , =1E250 , 16ḟ # Push the factorial of 16: 20922789888000 ↔ # Reverse (but remain an integer): 88898722902 ↔ # Reverse back: 20922789888 , 16ḟ↔↔ , k× Push 2147483648 onto the stack => [2147483648] : Duplicate the stack => [2147483648, 2147483648] \(+ Concatenate the last element of the stack with `(` => [2147483648, '2147483648('] 33* Multiply by 33 the string on top of the stack => [2147483648, '2147483648(21 ... 8(2147483648('] \↵+ Add `↵` to the string on top of the stack => [2147483648, '2147483648(21 ... 8(2147483648(↵'] Ė Evaluate as vyxal code the last element of the stack (see the cop thread) => [ <lowest bound> ] › Add 1 to the result => [ <lowest bound +1> ] implicit output , k×:\(+33*\↵+Ė› , 2e98 , (&<`q# and j*p</j (где 2 represents any of the 8 Malbolge commands), we can only generate the output numbers 0, 1, 3, 5, 6, 7, 8, 9. At this point it seems likely that Камила Шевчик возможно, использовали аналогичный подход и поэтому надеялись, что создание персонажа " /j " in 7 bytes or less is impossible...

Но: как насчет более коротких программ, в которых отсутствует 2L (end the program) command? These allow the memory to be initialized differently, and so we can maybe find a combination that enables output of " <j «...но интерпретатор Malbolge теперь продолжит читать байты из остальной части инициализированной памяти и выполнять их как команды с довольно неконтролируемыми последствиями! Тем не менее, если он достигнет 2 (end of program) before it hits a j*p<.. (записать вывод), это может быть хорошо: давайте попробуем!

После недолгих поисков мы обнаруживаем, что < is indeed able to initialize the memory to output " v ", используя две разные комбинации суффиксов: при тестовом запуске, 2 unfortunately keeps running and outputs an additional " v "прежде чем остановиться, но 2 stops after the " . ". Это трещина!

Для загрузки в Мальбольге финальную программу - j*ppp<v - must finally be encoded using a series of operations (see the spec) to yield the final loadable code of j*pp<v. .

 

Amarneoman1980


Рег
26 Apr, 2009

Тем
70

Постов
231

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

Виксал, 26 18 14 байт (сохранено 88 байт)

Трещина Программа Vyxal Cos от @lyxal

j*o<v..

Попробуйте онлайн!

нижняя граница вывода +1

(первый раз делаю выксал, подскажите, если я что-то не так сделала)

Объяснение

jpppp<v ||answer||

Брахилог, 5 байты (сохранено 0 байт), 20922789888

jppp<v.

Выводит \$20\text{,}922\text{,}789\text{,}888\$.

Трещины Ответ @Fatalize's Brachylog Cop, что также составляет 5 байт и диапазон от \$14\text{,}159\text{,}265\text{,}359\$ до \$61\text{,}803\text{,}398\text{, }875\$.

Попробуйте онлайн.

Объяснение:

jpp<v.. ||answer||

Excel, 6 байт, трещины Ответ Люка Данна

ojp<v..

Попробуйте онлайн!

 

Serg29


Рег
15 Jan, 2015

Тем
87

Постов
208

Баллов
693
  • 26, Oct 2024
  • #5

JavaScript (Node.js), 22 байта

jop<v..

Попробуйте онлайн!

Это трещины полицейский l4m2.

Работает только теоретически. Строка в ответе с jpo<v.. golfed to o , минус 1, что приводит к числу.


JavaScript (Node.js), 22 байта

p

Попробуйте онлайн!

Работает в реальности.

Здесь используется тот факт, что количество повторений округляется в меньшую сторону.

 

Edwardneni


Рег
02 Feb, 2014

Тем
76

Постов
190

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

Семя, 4695 байт (сохранено 96 байт), \$9^{999999999999999}\$

2

Ничего умного с моей стороны, я украл это из истории редактирования ответа.

 

Takada_n


Рег
11 Sep, 2009

Тем
71

Постов
217

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

Интересно