spamsink: (Default)
[personal profile] spamsink
С точки зрения математика выражение n - n/2 - n/4 - n/8 - n/16 - ... очевидным образом равно нулю. Быстро и не особенно задумываясь, ответьте, чему оно равно для целых n с точки зрения программиста.

Date: 2011-10-20 03:17 am (UTC)
From: [identity profile] stumari.livejournal.com
"Быстро и не особенно задумываясь" == n

Date: 2011-10-20 03:25 am (UTC)
From: [identity profile] stumari.livejournal.com
сорри, это совсем не думая, я почему-то представил, что n=1

а так, если еще подумать, то что-то с log2(n) кажется, скорее log2(n)/2, потому что от кажедого второго члена будет единица оставться, а членов > 1 вроде log2(n)

Date: 2011-10-20 03:30 am (UTC)
From: [identity profile] stumari.livejournal.com
а если еще немножко подумать, то, возможно, число единиц в двоичной записи числа (что в среднем, наверное, будет log2(n)/2, но реально от 1 то log2(n))

Date: 2011-10-21 06:06 am (UTC)
From: [identity profile] stumari.livejournal.com
возможно, не совсем честный, в смысле, нарушает "Быстро и не особенно задумываясь": я начал смотреть конкретные примеры, сначала показалось, "ну в среднем на каждом втором члене единичку получим",
потом увидел, что это очень уж "средная температура по больнице", и что единичка будет там и только там, где она и в самом числе в двоичной записи
про отрицательные я и задумывался :)

Date: 2011-10-20 03:19 am (UTC)
From: [identity profile] solomon2.livejournal.com
Не определено потому что бесконечный цикл.

Date: 2011-10-20 04:04 am (UTC)
From: [identity profile] verevkin.livejournal.com
Тогда вот этому самому некоторому.
(deleted comment)

Date: 2011-10-20 03:25 am (UTC)

Date: 2011-10-20 04:00 am (UTC)
From: [identity profile] kdv2005.livejournal.com
Сдается мне, что сумме цифр в двоичном разложении числа n

Date: 2011-10-20 04:02 am (UTC)
From: [identity profile] kcmamu.livejournal.com
n<0 -> не определено
n>=0 -> число единичных битов у n

Date: 2011-10-20 11:17 pm (UTC)
From: [identity profile] anatoly borodin (from livejournal.com)
> Языки, в которых для n<0 это выражение не определено, должны быть подвергнуты остракизму.

С какой стати?

Date: 2011-10-20 04:08 am (UTC)
From: [identity profile] scolar.livejournal.com
Количеству единиц в двоичной записи n?

Date: 2011-10-20 11:50 am (UTC)
From: [identity profile] yatur.livejournal.com
А вот нифига. Вычисление знаменателей 2, 4, 8, ... приведет либо к ошибке переполнения (если язык проверяет на переполнение, как С#), либо к делению на ноль.

Date: 2011-10-20 04:38 pm (UTC)
From: [identity profile] yatur.livejournal.com
Вот именно. Поэтому никаких "..." в компьютерах быть не может. Все конечно. А если кто-то забыл - компьютер ему напомнит :)

Date: 2011-10-20 04:18 am (UTC)
From: [identity profile] burzumka.livejournal.com
количеству единиц в битовом представлении

Date: 2011-10-20 04:20 am (UTC)
vak: (Default)
From: [personal profile] vak
Сдвиг вправо?

Date: 2011-10-20 05:05 am (UTC)
vak: (Default)
From: [personal profile] vak
n - n/2 - n/4 - n/8 - n/16 - ... = n * (1 - 1/2 - 1/4 - 1/8 - 1/16 - ...) = n * 2^(-k)

Если деление предполагать вещественным, конечно.

Date: 2011-10-20 04:30 am (UTC)
From: [identity profile] ygam.livejournal.com
Сумма битов, что ли?

(я не особенно задумывался)

Date: 2011-10-20 09:27 am (UTC)
From: [identity profile] 4da.livejournal.com
Что-то я никак не пойму, почему так получается.
Кто-нибудь может объяснить?

Date: 2011-10-20 09:38 am (UTC)
From: [identity profile] 4da.livejournal.com
Похоже, я что-то понял.

Число n-n/2 равно n/2, если n - четно и n/2 + 1, если n - нечетно.

Получается, что при последовательном вычитании эти +1 накапливаются и остаются в остатке.

Примерно, так?

Profile

spamsink: (Default)
spamsink

February 2026

S M T W T F S
12345 67
8 91011 121314
15161718 192021
22 2324 25262728

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 5th, 2026 06:06 am
Powered by Dreamwidth Studios