Колмогоров-манія


32

Колмогорова складність струнного х визначається як довжина найкоротшої програми P , який виводить з. Якщо довжина P коротша за довжину s, то, як кажуть , s є стисливим , інакше s є нестислимим . Більшість струн є нестислимими ...

Напишіть найкоротшу програму, яка виводить цей рядок (без пробілів і без нових рядків):

d9 a6 b6 33 56 a7 95 4b 29 b0 ac 7f 2a aa 6d 19 b8 4b 4c f8 b6 2a ac 95 
a1 4b 4e a5 9d b3 e7 c9 4c 49 59 ec 94 b3 aa 6c 93 8f 11 5a 4d 39 75 82 
ec ea 24 cc d3 2d c3 93 38 4e b7 a6 0d d2 b5 37 23 54 ad 1b 79 aa 6e 49 
55 52 94 5a a7 3a 6a e9 e4 52 cd 2d 79 ad c6 12 b5 99 5b b4 76 51 17 4e 
94 f3 9a a2 e7 15 6a 55 14 4d 4e 4a a3 5c 2f ab 63 cc b5 a6 a4 92 96 8a 
2e c3 d8 88 9b 8c a9 16 f5 33 22 5b a2 e2 cc 1b 27 d4 e8 db 17 a4 39 85 
ca aa 5b 4f 36 24 d3 c6 f6 94 ad d7 0f 71 24 e1 b1 c5 ef 65 35 6c 8d d7 
1a 87 1e 25 df 5d c0 13 b2 6f 5a 57 28 98 bd 41 66 04 ed a2 52 c9 ac 83 
b3 6c 56 7e d1 c6 cc 53 4a 62 c5 59 a9 b2 d4 af 22 a5 a9 f4 b2 99 23 32 
f8 fb ae 48 6a 8a 9a b5 46 7a 36 59 9f 92 d3 25 b5 19 bd 8a 4a 49 62 a5 
e4 59 fb e5 ba a2 35 dd a9 36 1d a9 c9 69 89 77 6a b2 34 2d 1d 22 61 c5 
c2 66 1c e2 76 74 52 a5 d9 84 b9 8a a6 b5 14 ec 29 58 b2 bc 96 16 16 48 
f5 c5 bd 2f 32 1b 3d 4f 4b 2e b2 6b 9a d9 32 a4 4b 5c bc 92 b7 b3 26 39 
fa 42 2d 64 ed 1a 79 49 4c a3 b7 85 b2 a6 e2 8c d9 55 90 e1 a8 87 4b 60 
a6 e1 ba c4 bb ec 32 39 76 90 a6 b4 c6 65 79 61 91 aa 3d 54 b7 18 3d 15 
4b 06 db 30 8a 4d 4a a1 35 75 5d 3b d9 98 ac 55 5b 10 dd b3 e2 cc f1 5e 
b3 2b 53 90 b6 ee 2b ac 8f 88 8d 95 5a 75 df 59 2d 1c 5a 4c e8 f4 ea 48 
b9 56 de a0 92 91 a9 15 4c 55 d5 e9 3a 76 8e 04 ba e7 b2 aa e9 ab 2a d6 
23 33 45 3d c4 e9 52 e3 6a 47 50 ba af e4 e5 91 a3 14 63 95 26 b3 8b 4c 
bc aa 5a 92 7a ab ad a6 db 53 2e 97 06 6d ba 3a 66 49 4d 95 d7 65 c2 aa 
c3 1a 92 93 3f ca c2 6c 2b 37 55 13 c9 88 4a 5c 62 6b a6 ae cc de 72 94 

Вихід повинен виглядати так:

d9a6b63356a7954b29b0ac7f2aaa6d19b84b4cf8b62aac95a14b4e...7294

Примітка: не дозволяється вводити користувач, ні доступ до Інтернету, ні бібліотеки (крім тієї, яка потрібна для друку виводу).

Редагувати I: послідовність здається випадковою, але, як виявляється, дуже стислива обробка трохи простих чисел ...

Правка II: Молодці! Я перегляну відповіді в наступні години, а потім призначу суму. Це моя ідея про те, як це можна було вирішити:

  1. Якщо ви спробуєте стиснути дані, ви не зайшли далеко ...
  2. В Інтернеті ви можете знайти (добре відому?) Он-лайн енциклопедію цілісних послідовностей (OEIS);
  3. спроба перших шістнадцяткових цифр d9, a6, b6, 33, ...(або їх десяткове представлення) не дає результату;
  4. але якщо перетворити номери у двійкові ( 1,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0) та шукати їх у OEIS, ви отримаєте такий результат .
  5. Як зауважив Клавдіу, я також дав трохи підказки у питанні (Правка I вище) ... :-)

Переможець : Пітер Тейлор (GolfScript, 50), із особливою згадкою про Клавдіу (Python, 92), першого, хто "вирішив" це.


2
Чим це цікавіше, ніж інші питання складності коморов ?
Дверна ручка

2
@Doorknob: можливо, нічого ... принаймні, поки хтось не опублікує відповідь :-)
Marzio De Biasi

5
Це повинна бути гра «Вгадай константу»?
Пітер Тейлор

7
Не давайте рішення! Люди працюють над цим :-)
Мау

3
Я думаю, що конкурс повинен бути у двох частинах. Перша частина - це приз тим, хто знайшов відповідь. Друга частина - це приз тим, хто справді знає, як стиснути код і створити найменший. Наразі це більше питання "вгадай мій алгоритм", яке виключає дуллардів, як я, а також реальних кодів для гравців у гольф (яких я теж не є), а також тих, хто знає APL та інші лайливі мови (все ще не я ).

Відповіді:


11

GolfScript (50 байт)

$ wc -c codegolf24909.min.gs 
50 codegolf24909.min.gs
$ md5sum codegolf24909.min.gs 
ce652060039fba071d17333a1199fd72  codegolf24909.min.gs
$ time golfscript.rb codegolf24909.min.gs 
d9a6b63356a7954b29b0ac7f2aaa6d19b84b4cf8b62aac95a14b4ea59db3e7c94c4959ec94b3aa6c938f115a4d397582ecea24ccd32dc393384eb7a60dd2b5372354ad1b79aa6e495552945aa73a6ae9e452cd2d79adc612b5995bb47651174e94f39aa2e7156a55144d4e4aa35c2fab63ccb5a6a492968a2ec3d8889b8ca916f533225ba2e2cc1b27d4e8db17a43985caaa5b4f3624d3c6f694add70f7124e1b1c5ef65356c8dd71a871e25df5dc013b26f5a572898bd416604eda252c9ac83b36c567ed1c6cc534a62c559a9b2d4af22a5a9f4b2992332f8fbae486a8a9ab5467a36599f92d325b519bd8a4a4962a5e459fbe5baa235dda9361da9c96989776ab2342d1d2261c5c2661ce2767452a5d984b98aa6b514ec2958b2bc96161648f5c5bd2f321b3d4f4b2eb26b9ad932a44b5cbc92b7b32639fa422d64ed1a79494ca3b785b2a6e28cd95590e1a8874b60a6e1bac4bbec32397690a6b4c665796191aa3d54b7183d154b06db308a4d4aa135755d3bd998ac555b10ddb3e2ccf15eb32b5390b6ee2bac8f888d955a75df592d1c5a4ce8f4ea48b956dea09291a9154c55d5e93a768e04bae7b2aae9ab2ad62333453dc4e952e36a4750baafe4e591a314639526b38b4cbcaa5a927aabada6db532e97066dba3a66494d95d765c2aac31a92933fcac26c2b375513c9884a5c626ba6aeccde7294

real    365m11.938s
user    364m45.620s
sys     0m6.520s

Оскільки всі інші наразі розкривають свій код, я також попереджую прохання ОП про безвідмовність:

38200,{:x,{)x\%!},,2=},4/{3\{2&!!1$++}/.57>39*+}%+

Огляд розсічення

  • Обчисліть праймери менші ніж N з N = 38200: це дає перші 4032 прайми:38200,{:x,{)x\%!},,2=},
  • Ми хочемо один біт за простим числом, з шестигранною конверсією, тому розділіть їх на групи по 4: 4/
  • Для кожної групи, зіставити кожен штрих pдо p&2 != 0і зробити базу-2 в базовій 16 перетворення: {3\{2&!!1$++}/.57>39*+}%(це де цікаві прийоми)
  • Тепер у нас є масив значень ASCII плюс порожній рядок від stdin; об'єднайте їх, щоб отримати єдиний рядок для виводу:+

Більш детальне розсічення базової конверсії

Враховуючи стек, що містить порожній рядок і список простих чисел, нам потрібно зробити два перетворення:

  1. Перетворіть кожний простий біт, вказуючи, чи дорівнює він 2 або 3 (мод 4)
  2. Перетворіть біти в шістнадцяткові цифри

Є багато однаково довгих способів зробити 1; напр

{4%1>}%
{4%2/}%
{2/1&}%
{2/2%}%
{2&!!}%

або навіть

{2&}% followed by a 2/ after the base conversion

Для 2 очевидний підхід є

2base 16base{'0123456789abcdef'=}%+

Але основа - це довге слово, і оскільки 16 = 2 4, ми можемо легко зберегти кілька символів

4/{2base'0123456789abcdef'=}%+

Зараз найбільш очевидним відходом є 18 символів, присвячених цій струні. Ми просто хочемо функцію від цифри до коду ASCII. Ми хочемо зробити карту 0на '0' = 48, ..., 9на '9' = 57, 10до 'a' = 97, ... 15на 'f' = 102.

4/{2base.9>39*+48+}%+

Але тепер киньте в суміш заборону на base. Нам потрібно це реалізувати самостійно. Очевидна реалізація (в цьому напрямку легка) полягає в тому, що k baseце складка {\k*+}*. Трохи більше альтернативою є простої ітерації, який необхідний базовий випадок: 0\{\k*+}/. База 2 трохи особлива: 1$++рівнозначна \2*+одній і тій же довжині, і я взяв такий підхід.

Обидва вони довші, ніж 5-знакова 2base, але оскільки ми тепер перебираємо значення, ми можемо витягнути в частині 1, щоб мати єдиний цикл. Ми замінюємо

{2&!!}%4/{2base.9>39*+48+}%+

з

4/{{2&!!1$++}*.9>39*+48+}%+

для приємного заощадження на 1 char, або

4/{0\{2&!!1$++}/.9>39*+48+}%+

для втрати на 1 char.

Але хоча ця втрата на 1 char виглядає як крок назад, подумайте, що відбувається з цим 0. Він множиться на 16 і додається до результату базової конверсії. І остаточне, що ми робимо - це додати кратне 16 на вихід. Тож ми можемо поєднати два як

4/{3\{2&!!1$++}/.57>39*+}%+

Спільна коротка і бонусна кмітливість робить її цікавішою.


1
360 хвилин! Це досить довго. Цікаво, який підхід ти взяв .. мій займає <1 хв.
Клавдіу

4
@Claudiu, я міг би зробити це набагато швидше, але це додало б близько 5 символів, і це колгогоров-складність, а не код-гольф із обмеженнями у часі.
Пітер Тейлор

Скільки ви могли б знищити, якщо використовували base? Усі інші рішення використовують еквівалент (використовує мінне, використовує hexC printf("%x"), haskell showHex)
Клавді

1
@Claudiu, насправді мій найкращий підхід із baseтим довший, ніж цей, тому що я зробив більшу частину оптимізації після уточнення, що не можу нею користуватися. baseдає мені значення від 0 до 15, тому для перетворення ще потрібна деяка робота 0-9a-f. Я можу переглянути за допомогою baseякогось моменту, але не сьогодні ввечері.
Пітер Тейлор

32

Пітон, 92 символи

Ось це пані та панове, сам код!

>>> code = "R=range;print hex(int(''.join(`i/2%2`for i in R(38198)if all(i%x for x in R(2,i))),2))[2:-1]"
>>> len(code)
92
>>> exec code
d9a6b63356a7954b29b0ac7f2aaa6d19b84b4cf8b62aac95a14b4ea59db3e7c94c4959ec94b3aa6c938f115a4d397582ecea24ccd32dc393384eb7a60dd2b5372354ad1b79aa6e495552945aa73a6ae9e452cd2d79adc612b5995bb47651174e94f39aa2e7156a55144d4e4aa35c2fab63ccb5a6a492968a2ec3d8889b8ca916f533225ba2e2cc1b27d4e8db17a43985caaa5b4f3624d3c6f694add70f7124e1b1c5ef65356c8dd71a871e25df5dc013b26f5a572898bd416604eda252c9ac83b36c567ed1c6cc534a62c559a9b2d4af22a5a9f4b2992332f8fbae486a8a9ab5467a36599f92d325b519bd8a4a4962a5e459fbe5baa235dda9361da9c96989776ab2342d1d2261c5c2661ce2767452a5d984b98aa6b514ec2958b2bc96161648f5c5bd2f321b3d4f4b2eb26b9ad932a44b5cbc92b7b32639fa422d64ed1a79494ca3b785b2a6e28cd95590e1a8874b60a6e1bac4bbec32397690a6b4c665796191aa3d54b7183d154b06db308a4d4aa135755d3bd998ac555b10ddb3e2ccf15eb32b5390b6ee2bac8f888d955a75df592d1c5a4ce8f4ea48b956dea09291a9154c55d5e93a768e04bae7b2aae9ab2ad62333453dc4e952e36a4750baafe4e591a314639526b38b4cbcaa5a927aabada6db532e97066dba3a66494d95d765c2aac31a92933fcac26c2b375513c9884a5c626ba6aeccde7294
>>> import hashlib; hashlib.sha256(code).hexdigest()
'60fa293bbe895f752dfe208b7b9e56cae4b0c8e4cdf7c5cf82bf7bab60af3db6'

Марціо залишив розумний натяк, сказавши, що "виявляється, що це дуже стислива обробка невеликих простих чисел". Я був впевнений, що "трошки" не було виділено курсивом випадково, тому я перетворив шістнадцяткову рядок у біти і спробував знайти шаблони. Я подумав, що спочатку він представляв усі праймери як біти і об'єднував їх разом, але це не вийшло. Тоді, можливо, взяти лише кілька цифр, або скинути всі нулі в бітовий рядок - все одно немає. Може бути, це біт-рядка з найменш значущих бітів перших кількох праймес? Не зовсім. Але врешті-решт я знайшов той, що працював - це біт-струна другого найменш значущого біта від першого, проте, багатьох прайме.

Отже, мій код робить саме це: генеруйте достатньо просторів, візьміть другий біт кожного ( i/2%2), об'єднайте їх у бінарний рядок, потім перетворіть його в base-10 ( int(..., 2)), а потім у base-16 ( hex(...)).


1
Чудово! Я новачок в коді гольфу, але хеш - це хороший спосіб дозволити іншим людям весело розкривати "як це зробити". Я зачекаю два дні, потім відкрию щедрість (що я нагороджу за довіру :).
Marzio De Biasi

5
@MarzioDeBiasi: Звичайно, це працює! Або, можливо, краще сказати, що ви будете винагороджувати його за день до настання виграшу, а якщо переможець не розкриє свою відповідь, виграє 2-е місце та інше ... навіщо покладатися на довіру, коли вам не доведеться ?
Клавдіу

Чому код у хешлібі не враховувався? Чи не запускається код для отримання результату?
philcolbourn

2
@philcolbourn: Ні в коді не використовується хешліб. Просто генерувати хеш sha256, тому завтра я можу довести, що написав код, коли вперше опублікував це. Ви побачите завтра!
Клавдіу

@Claudiu: Тепер ви повинні пояснити мені, як ви зламали проблему! Молодці!
rubik

9

Хаскелл, 105

SHA1 хеш: a24bb0f4f8538c911eee59dfc2d459194ccb969c

Вихід:

d9a6b63356a7954b29b0ac7f2aaa6d19b84b4cf8b62aac95a14b4ea59db3e7c94c4959ec94b3aa6c938f115a4d397582ecea24ccd32dc393384eb7a60dd2b5372354ad1b79aa6e495552945aa73a6ae9e452cd2d79adc612b5995bb47651174e94f39aa2e7156a55144d4e4aa35c2fab63ccb5a6a492968a2ec3d8889b8ca916f533225ba2e2cc1b27d4e8db17a43985caaa5b4f3624d3c6f694add70f7124e1b1c5ef65356c8dd71a871e25df5dc013b26f5a572898bd416604eda252c9ac83b36c567ed1c6cc534a62c559a9b2d4af22a5a9f4b2992332f8fbae486a8a9ab5467a36599f92d325b519bd8a4a4962a5e459fbe5baa235dda9361da9c96989776ab2342d1d2261c5c2661ce2767452a5d984b98aa6b514ec2958b2bc96161648f5c5bd2f321b3d4f4b2eb26b9ad932a44b5cbc92b7b32639fa422d64ed1a79494ca3b785b2a6e28cd95590e1a8874b60a6e1bac4bbec32397690a6b4c665796191aa3d54b7183d154b06db308a4d4aa135755d3bd998ac555b10ddb3e2ccf15eb32b5390b6ee2bac8f888d955a75df592d1c5a4ce8f4ea48b956dea09291a9154c55d5e93a768e04bae7b2aae9ab2ad62333453dc4e952e36a4750baafe4e591a314639526b38b4cbcaa5a927aabada6db532e97066dba3a66494d95d765c2aac31a92933fcac26c2b375513c9884a5c626

Редагувати: Код:

import Numeric;f(x:z)s=f[y|y<-z,0/=mod y x]$s*2+quot(mod x 4)2;f[]s=s;main=putStr$showHex(f[2..38198]0)""

Я пропустив правило про не використання будь-яких функцій бібліотеки, крім друку (putStr). Я припускаю, що математичні оператори, хоча вони технічно функціонують, дозволені.


9

С, 136 116 109 103 символів

Добре тоді, ось мої зусилля:

i;p;q;main(n){for(;n++,q<4032;){for(i=1;++i<n&&n%i;);if(i==n)p+=p+(n&2)/2,p=++q&3?p:printf("%x",p)*0;}}

MD5 hash = f638552ef987ca302d1b6ecbf0b50e66

1
Оскільки printfповертається кількість написаних символів, яке тут завжди не дорівнює нулю, ви можете використовувати !printf(...)замість того, printf(...)*0щоб зберегти один знак.
pastebin.com slash 0mr8spkT

@ace * ляпає чолом * А, чому я не придумав цього ?? Дякую ас, як завжди :-) (Може також залиште код таким, яким він є, оскільки він повинен відповідати хешу MD5.)
кричущий ossifrage

7

JS, 764

якщо ми розглядаємо цей рядок як base64, ми можемо мати меншу версію, використовуючи версію un-base-64-ed:

btoa("wÖºo­÷离÷ÛÖôiÎßÙ¦éÝ}oÎáÇüo­iÏyk^áæ¹õÖ÷{·=áÎ=ç×÷÷i®÷×^ZáÝýï6yÇÛw}swßÎo¶ºÑ×voûÛ~xiÝ[ïÖéî=çv÷Zk½Ú駽{vqÝïÖs­vo}å¶øï®u×¾÷÷õ¦¶{½yé®y×áîk~\Ùöëwoºkv÷¯Ùç7wÏ<õ¿kÝz÷Ûn[kg¶qÍ[Û·x{Ç[׶¸ßß9q¦å¾ß­¸ww:¯xi×{ÑþõÛµoW9yþ¹ßñ×{Õ¯;Õí¹uþ]sMwonå®{ÛÏ|mÞ5ë­8yÖ¶çg=iÏ7o~ç®ÞwW:qÎw᮶s}kÖöwÛf¹k×øoo}Û}öÇÛiî<é¯õ¦ùã®Úß®}õÿvw}¹o}mßá®=ëf¹{}}·¹m¦¶ß]kÝúÕÖ½sÞ½óÞûé¦ößÕݶëW9snºÕǶï®øçf¹wß8oßk¦ù×ÛÞ|ofÜ÷­z×®<9mÝßm[ÝÞá½onõ§}ßf¸á¾\mÏvo¶÷Û­ý}®6ÙÞ¸yÝZïÞ=áÆ·o¿9ofº{owÞy÷GµkÏ;á¾´k§µm§8m·ßmýï¯tk¦øs®¹ïÞµ÷VÝÞxo½|ÝÝyá½:u½ôñ®á¦µßùåÝÛwß|iÎyå½tuÖ÷{g^^o}çto§Ù¶ñÿ<ñßyå®ùuþ}ÙÝ\å®{Çøy®<oÞzuæ´÷oukÝyáÎyw½Ý®úñí8m§»of{ÖÙ§zÛ}÷ãÝs½çg·é®;çFÚi÷¸{uk}xëyÛ¦÷ñ¾mÆå¯ví¦iÖºu¾wÙï{Ó®m­Úë®=áßyw¾¹sfs}Z÷owÝ÷snÙ½ûçwsß<á®\ënk¦qÇ^ïox")

Але я думаю, що автор хоче, щоб ми знайшли логіку за цією невипадковою рядком.


1
щоб уникнути "скоромовки", я додав деякі деталі у запитання :-)
Marzio De Biasi

4

Mathetmatica - 56

Таємниця вже розв’язана, тому просто реалізуємо ідею

⌊.5Prime@Range@4032⌋~Mod~2~FromDigits~2~IntegerString~16

Приємно. Мені цікаво, якою найкоротшою можливістю є те, що котик вийшов із сумки
Клавдіу

Ви називаєте це "відсутність бібліотек (крім тієї, необхідної для друку виводу)"?
Пітер Тейлор

@PeterTaylor Так, немає імпорту - немає бібліотек.
swish

Судячи з коментарів, я не думаю, що саме так ОП мав намір трактувати це.
Пітер Тейлор

3

J - 46 знаків

Не заважайте мені, просто занесіть сюди J golf для нащадків. Не було достатньо розумним, щоб зрозуміти хитрість.

4[1!:2&4'0123456789abcdef'{~#.2|<.-:p:i.1007 4

Пояснили:

  • p:i.1007 4- Створіть 4-стовпецьку матрицю цілих чисел 1007 з 0, а потім візьміть прості числа, відповідні цим цілим числам. Так, p:це вбудований J. Так, у нас чотири прості короткі.

  • 2|<.-:- Половину кожного числа ( -:), перекрийте його ( <.) і візьміть цей модуль 2 ( 2|). Це те саме, що взяти наступний в оренду значний біт.

  • #.- Перетворіть кожен рядок результату з бази 2 в ціле число. Це дає нам 1007 цифр від 0 до 15 включно.

  • '0123456789abcdef'{~#.- Візьміть кожен рядок цієї матриці бітів як двійковий для числа і використовуйте це число для вибору зі списку шістнадцяткових цифр. Це перетворює кожні чотири біти в шістнадцятковий.

  • 1!:2&4- У інтерпретатора J є проблема з виведенням рядків довше 256 символів, тому нам доведеться надсилати ці дані безпосередньо в stdout. Деякі ви виграєте, деякі програєте.

  • 4[- Нарешті, відкиньте результат 1!:2і замість цього виведіть відсутні 4 з виводу. Ми робимо це тому, що це коротше, ніж включити останні чотири праймери та повернути порожній результат.


0

JS, 503

Наступна ідея @xem:

s='Ù¦¶3V§K)°¬*ªm¸KLø¶*¬¡KN¥³çÉLIY쳪lZM9uìê$ÌÓ-Ã8N·¦\nÒµ7#T­yªnIURZ§:jéäRÍ-y­Æµ[´vQNó¢çjUMNJ£\/«c̵¦¤.ÃØ©õ3"[¢âÌ'+"'"+'ÔèÛ¤9ʪ[O6$ÓÆö­×q$á±Åïe5l×%ß]À²oZW(½Afí¢Rɬ³lV~ÑÆÌSJbÅY©²Ô¯"¥©ô²#2øû®HjµFz6YÓ%µ½JIb¥äYûåº\n5Ý©6©Éiwj²4-"aÅÂfâvtR¥Ù¹¦µì)X²¼HõŽ/2=OK.²kÙ2¤K\¼·³&9úB-díyIL£·²¦âÙUá¨K`¦áºÄ»ì29v¦´Æeyaª=T·=KÛ0MJ¡5u];Ù¬U[ݳâÌñ^³+S¶î+¬ZußY-ZLèôêH¹VÞ ©LUÕé:vºç²ªé«*Ö#3E=ÄéRãjGPº¯äå£c&³L¼ªZz«­¦ÛS.mº:fIM×eªÃ?ÊÂl+7UÉJ\bk¦®ÌÞr'
r=''
for(var i=0;i<s.length;i++) r+=s.charCodeAt(i).toString(16);
console.log(r)

0

Математика, 55

Prime~Array~4031~BitAnd~2~FromDigits~2~IntegerString~16

Тестовано на Mathematica 8. Для цього використовуються два спостереження:

  • Mathematica FromDigitsнасправді не перевіряє діапазон наведених цифр, тому якщо ви застосуєте його до списку форми, {2,0,2,2,0,...}ви отримаєте вдвічі більший результат, як ніби звертаючись до {1,0,1,1,0,...}. Але це саме та форма, яка генерується за BitAndдопомогою простірів з 2.
  • Останній біт числа, шістнадцяткове представлення якого ми хочемо, дорівнює нулю (про що свідчить рядок, що закінчується парним числом), тому це всього в два рази більше числа, яке ви отримаєте на один простір менше. Але коефіцієнт два - саме те, що ми отримуємо, використовуючи попереднє спостереження, тому все ідеально поєднується разом.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.