0 / 0 / 0
Регистрация: 18.09.2013
Сообщений: 24
|
|
1 | |
Подсчет единиц в двоичном представлении чисел от A до B21.03.2015, 11:09. Показов 5881. Ответов 11
Метки нет (Все метки)
0
|
21.03.2015, 11:09 | |
Ответы с готовыми решениями:
11
Сортировка чисел по количеству единиц в двоичном представлении Произведение тех чисел, которые в двоичном представлении имеют неравное число нулей и единиц. Указать то число заданного множества целых чисел, в двоичном представлении которого больше всего единиц Указать то число заданного множества целых чисел, в двоичном представлении которого больше всего единиц |
21.03.2015, 20:08 | 2 |
думаю, нужно проанализировать ряд хотя бы 256 чисел
и подумать, нет ли закономерности 1 = 0001 (1) 2 = 0010 (1) 3 = 0011 (2) 4 = 0100 (1) 5 = 0101 (2) 6 = 0110 (2) 7 = 0111 (3) 8 = 1000 (1) 9 = 1001 (2) 10 = 1010 (2) 11 = 1011 (3) 12 = 1100 (2) 13 = 1101 (3) 14 = 1110 (3) 15 = 1111 (4)
0
|
833 / 641 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
|
||||||
22.03.2015, 13:08 | 3 | |||||
Сообщение было отмечено Csharper@ как решение
Решение
res = calc(b) - calc(a-1)
вычисление от 0 до a можносделать за количество бит. Или даже формулу вывести - для единиц она вроде простая, для нулей было бы сложнее, если лидирующие считать не надо. Добавлено через 10 минут Рассмотрим число, равное 2^k. Все числа строго меньшие его содержат 50% единиц от k*2^k, т. е. k*2^(k-1). Этого должно быть достаточно чтобы пройти по единичным битам и посчитать нужное знаечение как сумму.
Код
0 1 0 1 2 1 2 4 4 3 8 12 4 16 32 5 32 80 6 64 192 7 128 448 8 256 1024 9 512 2304
1
|
22.03.2015, 13:12 | 4 | |||||
Сообщение было отмечено Csharper@ как решение
Решение
Посудите сами (все числа записываю в двоичной системе)
от 0 до 1 — 1 единица, от 0 до 11 — 100, от 0 до 111 — 1100, в общем случае от 0 до (10^n)-1 насчитывается S(n) единиц, где Пусть U(A) — число единиц от 0 до A, и пусть , . Тогда В последних двух членах не уверен, нужны ли. Впрочем, они калибруются. Количество единиц от A до B — это U(B) - U(A-1).
1
|
833 / 641 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
|
|
22.03.2015, 13:49 | 5 |
Эм.. По условию задачи представление чисел нужно двоичное, а не десятичное. Что за 10^n? Или это двоичные 10?
И вообще, что-то сложное получилось. Задача должна решаться 2 вызовами функции из 2 циклов, насколько я представляю.
0
|
833 / 641 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
|
|
22.03.2015, 14:26 | 7 |
Там (lb(x))^2 должно бы получиться, может быть даже до lb(x) возможно упростить.
Просто надо детально продумать, что на что умножать. Ну и другой вариант - просто динамику написать.
0
|
22.03.2015, 14:33 | 8 |
в лоб решение предельно простое
делить переменную пополам, пока не получится 0 на каждом шаге проверять остаток от деления если =1, то увеличивать счетчик если получилось так, познакомьте с кодом)
0
|
833 / 641 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
|
|
22.03.2015, 14:44 | 9 |
Сообщение от Mysterious Light
x - значение, для которого считаем Нет, так не получится. Надо тот цикл что я привёл как-то прикрутить к проходу по битам.
1
|
22.03.2015, 14:54 | 10 | |||||
Для Qwertiy и остальных алгоритм из Подсчет единиц в двоичном представлении чисел от A до B, переписанный на JavaScript
Код
1. 1 2. 2 3. 4 4. 5 5. 7 6. 9 7. 12 8. 13 9. 15 Для меня прямая манипуляции с битами — лунная грамота, поэтому прошу подправить, если что-то можно, для красоты. Писал, как умел.
1
|
833 / 641 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
|
|
22.03.2015, 16:57 | 12 |
Ну перепиши на си++ и запусти.
0
|
22.03.2015, 16:57 | |
22.03.2015, 16:57 | |
Помогаю со студенческими работами здесь
12
Указать то число заданного множества целых чисел, в двоичном представлении которого больше всего единиц Функция void: в последовательности целых чисел найти число, в двоичном представлении которого больше всего единиц Указать то дробное число. которое в двоичном представлении имеет наибольшее число единиц среди чисел Количество единиц в двоичном представлении числа N Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |