powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / вопрос по математике
9 сообщений из 59, страница 3 из 3
вопрос по математике
    #37566501
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
потому, что мы дважды считаем число,
у которого две серии одинаковых бит
...
Рейтинг: 0 / 0
вопрос по математике
    #37566502
ИринаВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksandr Sharahovпотому, что мы дважды считаем число,
у которого две серии одинаковых бит
Почему?
...
Рейтинг: 0 / 0
вопрос по математике
    #37566503
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Число длиной 16 и более бит может содержать две группы по 8 единиц.
Такие числа надо считать 1 раз.
...
Рейтинг: 0 / 0
вопрос по математике
    #37566506
ИринаВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сэнкс. Правильно. На 17 1 лишнее, и тд. Завтра додумаю.
...
Рейтинг: 0 / 0
вопрос по математике
    #37567059
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ENO2 байтная переменная может принимать 65535 значений от 0000 до FFFF. Байт FF использовать нельзя. Сколько значений сможет принимать переменная? На 512 меньше.
Так же надо для 3 и 4 байт.

В 2байтной переменной может быть
256 * 256 разных значений.

По 256 значений в старшем и младшем байте.

Если запретить по одному значению (0xFF) и там, и там, будет
255 * 255 = 65025 разных значений.
...
Рейтинг: 0 / 0
вопрос по математике
    #37567077
ИринаВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Додумала. Лишних ровно столько же сколько общее число для (N-8)-1.
Те. для N<=16 остается в силе
A i =2*A i-1 +2 i-1
А для N>16 добаляется поправка
A i =2*A i-1 +2 i-1 -A (i-8)-1
...
Рейтинг: 0 / 0
вопрос по математике
    #37567096
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИринаВ,

Прекрасно )
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
function CountGE(n, k: integer): int64;
begin;
  if (k>0) and (n>=k) and (n<64)
  then if n>k
       then Result:=2 * CountGE(n-1, k)
                  + int64(1) shl (n-1-k)
                  - CountGE(n-1-k, k)
       else Result:=1
  else Result:=0;
  end;

procedure TForm1.Button7Click(Sender: TObject);
var
  BitCount: integer;
begin;
  Memo1.Lines.Add('8 &#237;&#243;&#235;&#229;&#226;&#251;&#245; &#225;&#232;&#242;&#238;&#226; &#239;&#238;&#228;&#240;&#255;&#228; &#226; &#247;&#232;&#241;&#235;&#229;');
  for BitCount:=8 to 63 do
    Memo1.Lines.Add(Format(
      '&#228;&#235;&#232;&#237;&#238;&#233; %d &#226;&#241;&#242;&#240;&#229;&#242;&#232;&#235;&#232;&#241;&#252; %d &#240;&#224;&#231;',
      [BitCount, CountGE(BitCount, 8)]));
  end;


8 нулевых битов подряд в числе
длиной 8 встретились 1 раз
длиной 9 встретились 3 раз
длиной 10 встретились 8 раз
длиной 11 встретились 20 раз
длиной 12 встретились 48 раз
длиной 13 встретились 112 раз
длиной 14 встретились 256 раз
длиной 15 встретились 576 раз
длиной 16 встретились 1280 раз
длиной 17 встретились 2815 раз
длиной 18 встретились 6139 раз
длиной 19 встретились 13294 раз
длиной 20 встретились 28616 раз
длиной 21 встретились 61280 раз
длиной 22 встретились 130640 раз
длиной 23 встретились 277408 раз
длиной 24 встретились 587008 раз
длиной 25 встретились 1238272 раз
длиной 26 встретились 2604801 раз
длиной 27 встретились 5465607 раз
длиной 28 встретились 11442208 раз
длиной 29 встретились 23904376 раз
длиной 30 встретились 49844624 раз
длиной 31 встретились 103752912 раз
длиной 32 встретились 215617024 раз
длиной 33 встретились 447424256 раз
длиной 34 встретились 927164672 раз
длиной 35 встретились 1918833407 раз
длиной 36 встретились 3966418935 раз
длиной 37 встретились 8189831118 раз
длиной 38 встретились 16892628772 раз
длиной 39 встретились 34809154744 раз
длиной 40 встретились 71662040224 раз
длиной 41 встретились 147403430720 раз
длиной 42 встретились 302949371776 раз
длиной 43 встретились 622151448064 раз
длиной 44 встретились 1276743801089 раз
длиной 45 встретились 2618240659979 раз
длиной 46 встретились 5365730442312 раз
длиной 47 встретились 10989446162796 раз
длиной 48 встретились 22493838984736 раз
длиной 49 встретились 46015527557024 раз
длиной 50 встретились 94082674938880 раз
длиной 51 встретились 192260447017088 раз
длиной 52 встретились 392694835608320 раз
длиной 53 встретились 801705113459967 раз
длиной 54 встретились 1635976358348787 раз
длиной 55 встретились 3336955730432926 раз
длиной 56 встретились 6803659503058384 раз
длиной 57 встретились 13866300143842688 раз
длиной 58 встретились 28249534713549664 раз
длиной 59 встретились 57530886659003072 раз
длиной 60 встретились 117121312684674304 раз
длиной 61 встретились 238353530161110784 раз
длиной 62 встретились 484912554463502593 раз
длиной 63 встретились 986203531078138383 раз
...
Рейтинг: 0 / 0
вопрос по математике
    #37567106
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуем повторить
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
procedure TForm1.Button7Click(Sender: TObject);
var
  BitCount: integer;
begin;
  Memo1.Lines.Add('8 нулевых битов подряд в числе');
  for BitCount:=8 to 63 do
    Memo1.Lines.Add(Format(
      'длиной %d встретились %d раз',
      [BitCount, CountGE(BitCount, 8)]));
  end;
...
Рейтинг: 0 / 0
вопрос по математике
    #37567347
dymka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нерекурсивная формула (без учета повторяющихся групп):

A i = (i+2) * 2 i-1
...
Рейтинг: 0 / 0
9 сообщений из 59, страница 3 из 3
Форумы / Программирование [игнор отключен] [закрыт для гостей] / вопрос по математике
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]