avva: (Default)
[personal profile] avva
Вот еще одна задачка для программистов. Если знаете ответ, не пишите. Комментарии скрывать не буду; советую попробовать решить самостоятельно, до того, как подсматривать чужие ответы - красивая штука.

Дано 64-битное число x. Мы делаем с ним следующее (в псевдокоде):

accum = 0
do 64 times:
  accum += x
  x = x rot 1
end


Здесь rot - вращение числа на один разряд влево (выходящий слева бит становится вправо). И accum, и x - 64-битные числа без знака; при сложении мы отбрасываем бит переноса, если он образуется.

Вопросы: 1) что мы получаем? 2) почему это так получается?

Date: 2008-01-13 10:52 pm (UTC)
From: [identity profile] insie-ru.livejournal.com
почувствовал себя кретином

Date: 2008-01-13 11:00 pm (UTC)
From: [identity profile] avva.livejournal.com
Это полезное чувство. Случается со мной не реже раза в неделю, и обычно помогает :)

Date: 2008-01-13 11:03 pm (UTC)
From: [identity profile] insie-ru.livejournal.com
тут не поможет, лет 7 назад я бы решил эту задачку, а сейчас не вижу смысла все вспоминать или ломать голову о_О

Date: 2008-01-14 09:42 pm (UTC)
From: [identity profile] shamany.livejournal.com
в калькуляторах все умножения есть сложения+сдвиги, а все сложения есть тоже сдвиги ;)

"кто видел Felix (tm) того ничем уже не удивишь"

наконец-то!

Date: 2008-01-14 12:03 am (UTC)
From: [identity profile] ex-ex-fatal.livejournal.com
он сделал это!

January 2026

S M T W T F S
    1 2 3
4 5 6 78910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 7th, 2026 01:46 am
Powered by Dreamwidth Studios