Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/55: Рейтинг темы: голосов - 55, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 21.11.2020
Сообщений: 21

Количество нулей и единиц в двоичной записи числа

25.09.2022, 20:23. Показов 12895. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Алгоритм получает на вход натуральное число N > 1 и строит по нему новое число R следующим образом:
1. Строится двоичная запись числа N.
2. Подсчитывается количество нулей и единиц в полученной записи. Если их количество одинаково, в конец записи добавляется её последняя цифра. В противном случае в конец записи добавляется цифра, которая встречается реже.
3. Шаг 2 повторяется ещё два раза.
4. Результат переводится в десятичную систему счисления.
При каком наибольшем исходном числе N < 750 в результате работы алгоритма получится чётное число, которое не делится на 4?

Помогите , пожалуйста
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.09.2022, 20:23
Ответы с готовыми решениями:

Посчитать количество единиц в двоичной записи числа
Какой код нужен для того чтобы посчитать количество единиц в двоичной записи числа в питоне? (После кода: b,c,d =...

Посчитать количество единиц в двоичной записи числа
В языке ассемблера для процессора «Тетриум» есть команда ADDSUB. Эта команда берёт значения регистров b, c и d и кладёт в регистр, a...

Найдите количество единиц в двоичной записи заданного числа
На уроках информатики вас, наверное, учили переводить числа из одних систем счисления в другие и выполнять другие подобные операции....

7
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
26.09.2022, 07:51
Cheburash_, начни с создания функции, возвращающей число нулей и единиц в двоичной записи
2
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38168 / 21103 / 4307
Регистрация: 12.02.2012
Сообщений: 34,692
Записей в блоге: 14
26.09.2022, 08:29
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
def foo(n):
    zero=0
    one =0
    nn=n
    while nn>0:
        if nn%2==0:
            zero+=1
        else:
            one+=1
        nn=nn//2
    if one == zero:
        n=n*2+n%2
    elif one > zero:
        n=n*2
    else:
        n=n*2+1
    return n
    
def task():
    for k in range(750,1,-1):
        p=foo(k)
        if p%2==0 and p%4 != 0:
            print(k)
            break
            
task()
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
26.09.2022, 08:38
Catstail, чето у меня другой ответ получился. А именно 480

Добавлено через 2 минуты
Кликните здесь для просмотра всего текста
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
def bincount(x:int)->list:
    cnt = [0, 0]
    while x:
        cnt[x&1]+=1
        x >>= 1
    return cnt
 
def task(x:int)->int:
    sx = bin(x)[2:]
    for _ in range(3):
        cnt = bincount(int(sx, 2))
        if cnt[0]==cnt[1]:
            sx += sx[-1]
        elif cnt[0]<cnt[1]:
            sx+='0'
        else:
            sx+='1'
    return int(sx, 2)
 
for x in range(750, 0, -1):
    xx = task(x)
    
    if (not xx%2) and (xx%4):
        # print(xx)
        print(x)
        break
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38168 / 21103 / 4307
Регистрация: 12.02.2012
Сообщений: 34,692
Записей в блоге: 14
26.09.2022, 08:43
Непонятно...

Python
1
2
3
4
5
6
7
def task():
    for k in range(750,1,-1):
        p=foo(k)
        print(k,bin(k),p,bin(p))
        if p%2==0 and p%4 != 0:
            print(k)
            break
Вывод:

750 0b1011101110 1500 0b10111011100
749 0b1011101101 1498 0b10111011010
749
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
26.09.2022, 08:48
Catstail,
Цитата Сообщение от Cheburash_ Посмотреть сообщение
Шаг 2 повторяется ещё два раза.
не?
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38168 / 21103 / 4307
Регистрация: 12.02.2012
Сообщений: 34,692
Записей в блоге: 14
26.09.2022, 08:57
iSmokeJC, Ваша правда!

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
def foo(n):
    nn=n
    for _ in range(3):
        zero=0
        one =0
        while nn>0:
            if nn%2==0:
                zero+=1
            else:
                one+=1
            nn=nn//2
        if one == zero:
            n=n*2+n%2
        elif one > zero:
            n=n*2
        else:
            n=n*2+1
        nn=n    
    return n
    
def task():
    for k in range(750,1,-1):
        p=foo(k)
        print(k,bin(k),p,bin(p))
        if p%2==0 and p%4 != 0:
            print(k)
            break
            
task()
Кликните здесь для просмотра всего текста

750 0b1011101110 6000 0b1011101110000
749 0b1011101101 5992 0b1011101101000
748 0b1011101100 5984 0b1011101100000
747 0b1011101011 5976 0b1011101011000
746 0b1011101010 5968 0b1011101010000
745 0b1011101001 5960 0b1011101001000
744 0b1011101000 5955 0b1011101000011
743 0b1011100111 5944 0b1011100111000
742 0b1011100110 5936 0b1011100110000
741 0b1011100101 5928 0b1011100101000
740 0b1011100100 5923 0b1011100100011
739 0b1011100011 5912 0b1011100011000
738 0b1011100010 5907 0b1011100010011
737 0b1011100001 5900 0b1011100001100
736 0b1011100000 5895 0b1011100000111
735 0b1011011111 5880 0b1011011111000
734 0b1011011110 5872 0b1011011110000
733 0b1011011101 5864 0b1011011101000
732 0b1011011100 5856 0b1011011100000
731 0b1011011011 5848 0b1011011011000
730 0b1011011010 5840 0b1011011010000
729 0b1011011001 5832 0b1011011001000
728 0b1011011000 5827 0b1011011000011
727 0b1011010111 5816 0b1011010111000
726 0b1011010110 5808 0b1011010110000
725 0b1011010101 5800 0b1011010101000
724 0b1011010100 5795 0b1011010100011
723 0b1011010011 5784 0b1011010011000
722 0b1011010010 5779 0b1011010010011
721 0b1011010001 5772 0b1011010001100
720 0b1011010000 5767 0b1011010000111
719 0b1011001111 5752 0b1011001111000
718 0b1011001110 5744 0b1011001110000
717 0b1011001101 5736 0b1011001101000
716 0b1011001100 5731 0b1011001100011
715 0b1011001011 5720 0b1011001011000
714 0b1011001010 5715 0b1011001010011
713 0b1011001001 5708 0b1011001001100
712 0b1011001000 5703 0b1011001000111
711 0b1011000111 5688 0b1011000111000
710 0b1011000110 5683 0b1011000110011
709 0b1011000101 5676 0b1011000101100
708 0b1011000100 5671 0b1011000100111
707 0b1011000011 5660 0b1011000011100
706 0b1011000010 5655 0b1011000010111
705 0b1011000001 5647 0b1011000001111
704 0b1011000000 5639 0b1011000000111
703 0b1010111111 5624 0b1010111111000
702 0b1010111110 5616 0b1010111110000
701 0b1010111101 5608 0b1010111101000
700 0b1010111100 5600 0b1010111100000
699 0b1010111011 5592 0b1010111011000
698 0b1010111010 5584 0b1010111010000
697 0b1010111001 5576 0b1010111001000
696 0b1010111000 5571 0b1010111000011
695 0b1010110111 5560 0b1010110111000
694 0b1010110110 5552 0b1010110110000
693 0b1010110101 5544 0b1010110101000
692 0b1010110100 5539 0b1010110100011
691 0b1010110011 5528 0b1010110011000
690 0b1010110010 5523 0b1010110010011
689 0b1010110001 5516 0b1010110001100
688 0b1010110000 5511 0b1010110000111
687 0b1010101111 5496 0b1010101111000
686 0b1010101110 5488 0b1010101110000
685 0b1010101101 5480 0b1010101101000
684 0b1010101100 5475 0b1010101100011
683 0b1010101011 5464 0b1010101011000
682 0b1010101010 5459 0b1010101010011
681 0b1010101001 5452 0b1010101001100
680 0b1010101000 5447 0b1010101000111
679 0b1010100111 5432 0b1010100111000
678 0b1010100110 5427 0b1010100110011
677 0b1010100101 5420 0b1010100101100
676 0b1010100100 5415 0b1010100100111
675 0b1010100011 5404 0b1010100011100
674 0b1010100010 5399 0b1010100010111
673 0b1010100001 5391 0b1010100001111
672 0b1010100000 5383 0b1010100000111
671 0b1010011111 5368 0b1010011111000
670 0b1010011110 5360 0b1010011110000
669 0b1010011101 5352 0b1010011101000
668 0b1010011100 5347 0b1010011100011
667 0b1010011011 5336 0b1010011011000
666 0b1010011010 5331 0b1010011010011
665 0b1010011001 5324 0b1010011001100
664 0b1010011000 5319 0b1010011000111
663 0b1010010111 5304 0b1010010111000
662 0b1010010110 5299 0b1010010110011
661 0b1010010101 5292 0b1010010101100
660 0b1010010100 5287 0b1010010100111
659 0b1010010011 5276 0b1010010011100
658 0b1010010010 5271 0b1010010010111
657 0b1010010001 5263 0b1010010001111
656 0b1010010000 5255 0b1010010000111
655 0b1010001111 5240 0b1010001111000
654 0b1010001110 5235 0b1010001110011
653 0b1010001101 5228 0b1010001101100
652 0b1010001100 5223 0b1010001100111
651 0b1010001011 5212 0b1010001011100
650 0b1010001010 5207 0b1010001010111
649 0b1010001001 5199 0b1010001001111
648 0b1010001000 5191 0b1010001000111
647 0b1010000111 5180 0b1010000111100
646 0b1010000110 5175 0b1010000110111
645 0b1010000101 5167 0b1010000101111
644 0b1010000100 5159 0b1010000100111
643 0b1010000011 5151 0b1010000011111
642 0b1010000010 5143 0b1010000010111
641 0b1010000001 5135 0b1010000001111
640 0b1010000000 5127 0b1010000000111
639 0b1001111111 5112 0b1001111111000
638 0b1001111110 5104 0b1001111110000
637 0b1001111101 5096 0b1001111101000
636 0b1001111100 5088 0b1001111100000
635 0b1001111011 5080 0b1001111011000
634 0b1001111010 5072 0b1001111010000
633 0b1001111001 5064 0b1001111001000
632 0b1001111000 5059 0b1001111000011
631 0b1001110111 5048 0b1001110111000
630 0b1001110110 5040 0b1001110110000
629 0b1001110101 5032 0b1001110101000
628 0b1001110100 5027 0b1001110100011
627 0b1001110011 5016 0b1001110011000
626 0b1001110010 5011 0b1001110010011
625 0b1001110001 5004 0b1001110001100
624 0b1001110000 4999 0b1001110000111
623 0b1001101111 4984 0b1001101111000
622 0b1001101110 4976 0b1001101110000
621 0b1001101101 4968 0b1001101101000
620 0b1001101100 4963 0b1001101100011
619 0b1001101011 4952 0b1001101011000
618 0b1001101010 4947 0b1001101010011
617 0b1001101001 4940 0b1001101001100
616 0b1001101000 4935 0b1001101000111
615 0b1001100111 4920 0b1001100111000
614 0b1001100110 4915 0b1001100110011
613 0b1001100101 4908 0b1001100101100
612 0b1001100100 4903 0b1001100100111
611 0b1001100011 4892 0b1001100011100
610 0b1001100010 4887 0b1001100010111
609 0b1001100001 4879 0b1001100001111
608 0b1001100000 4871 0b1001100000111
607 0b1001011111 4856 0b1001011111000
606 0b1001011110 4848 0b1001011110000
605 0b1001011101 4840 0b1001011101000
604 0b1001011100 4835 0b1001011100011
603 0b1001011011 4824 0b1001011011000
602 0b1001011010 4819 0b1001011010011
601 0b1001011001 4812 0b1001011001100
600 0b1001011000 4807 0b1001011000111
599 0b1001010111 4792 0b1001010111000
598 0b1001010110 4787 0b1001010110011
597 0b1001010101 4780 0b1001010101100
596 0b1001010100 4775 0b1001010100111
595 0b1001010011 4764 0b1001010011100
594 0b1001010010 4759 0b1001010010111
593 0b1001010001 4751 0b1001010001111
592 0b1001010000 4743 0b1001010000111
591 0b1001001111 4728 0b1001001111000
590 0b1001001110 4723 0b1001001110011
589 0b1001001101 4716 0b1001001101100
588 0b1001001100 4711 0b1001001100111
587 0b1001001011 4700 0b1001001011100
586 0b1001001010 4695 0b1001001010111
585 0b1001001001 4687 0b1001001001111
584 0b1001001000 4679 0b1001001000111
583 0b1001000111 4668 0b1001000111100
582 0b1001000110 4663 0b1001000110111
581 0b1001000101 4655 0b1001000101111
580 0b1001000100 4647 0b1001000100111
579 0b1001000011 4639 0b1001000011111
578 0b1001000010 4631 0b1001000010111
577 0b1001000001 4623 0b1001000001111
576 0b1001000000 4615 0b1001000000111
575 0b1000111111 4600 0b1000111111000
574 0b1000111110 4592 0b1000111110000
573 0b1000111101 4584 0b1000111101000
572 0b1000111100 4579 0b1000111100011
571 0b1000111011 4568 0b1000111011000
570 0b1000111010 4563 0b1000111010011
569 0b1000111001 4556 0b1000111001100
568 0b1000111000 4551 0b1000111000111
567 0b1000110111 4536 0b1000110111000
566 0b1000110110 4531 0b1000110110011
565 0b1000110101 4524 0b1000110101100
564 0b1000110100 4519 0b1000110100111
563 0b1000110011 4508 0b1000110011100
562 0b1000110010 4503 0b1000110010111
561 0b1000110001 4495 0b1000110001111
560 0b1000110000 4487 0b1000110000111
559 0b1000101111 4472 0b1000101111000
558 0b1000101110 4467 0b1000101110011
557 0b1000101101 4460 0b1000101101100
556 0b1000101100 4455 0b1000101100111
555 0b1000101011 4444 0b1000101011100
554 0b1000101010 4439 0b1000101010111
553 0b1000101001 4431 0b1000101001111
552 0b1000101000 4423 0b1000101000111
551 0b1000100111 4412 0b1000100111100
550 0b1000100110 4407 0b1000100110111
549 0b1000100101 4399 0b1000100101111
548 0b1000100100 4391 0b1000100100111
547 0b1000100011 4383 0b1000100011111
546 0b1000100010 4375 0b1000100010111
545 0b1000100001 4367 0b1000100001111
544 0b1000100000 4359 0b1000100000111
543 0b1000011111 4344 0b1000011111000
542 0b1000011110 4339 0b1000011110011
541 0b1000011101 4332 0b1000011101100
540 0b1000011100 4327 0b1000011100111
539 0b1000011011 4316 0b1000011011100
538 0b1000011010 4311 0b1000011010111
537 0b1000011001 4303 0b1000011001111
536 0b1000011000 4295 0b1000011000111
535 0b1000010111 4284 0b1000010111100
534 0b1000010110 4279 0b1000010110111
533 0b1000010101 4271 0b1000010101111
532 0b1000010100 4263 0b1000010100111
531 0b1000010011 4255 0b1000010011111
530 0b1000010010 4247 0b1000010010111
529 0b1000010001 4239 0b1000010001111
528 0b1000010000 4231 0b1000010000111
527 0b1000001111 4220 0b1000001111100
526 0b1000001110 4215 0b1000001110111
525 0b1000001101 4207 0b1000001101111
524 0b1000001100 4199 0b1000001100111
523 0b1000001011 4191 0b1000001011111
522 0b1000001010 4183 0b1000001010111
521 0b1000001001 4175 0b1000001001111
520 0b1000001000 4167 0b1000001000111
519 0b1000000111 4159 0b1000000111111
518 0b1000000110 4151 0b1000000110111
517 0b1000000101 4143 0b1000000101111
516 0b1000000100 4135 0b1000000100111
515 0b1000000011 4127 0b1000000011111
514 0b1000000010 4119 0b1000000010111
513 0b1000000001 4111 0b1000000001111
512 0b1000000000 4103 0b1000000000111
511 0b111111111 4088 0b111111111000
510 0b111111110 4080 0b111111110000
509 0b111111101 4072 0b111111101000
508 0b111111100 4064 0b111111100000
507 0b111111011 4056 0b111111011000
506 0b111111010 4048 0b111111010000
505 0b111111001 4040 0b111111001000
504 0b111111000 4032 0b111111000000
503 0b111110111 4024 0b111110111000
502 0b111110110 4016 0b111110110000
501 0b111110101 4008 0b111110101000
500 0b111110100 4000 0b111110100000
499 0b111110011 3992 0b111110011000
498 0b111110010 3984 0b111110010000
497 0b111110001 3976 0b111110001000
496 0b111110000 3969 0b111110000001
495 0b111101111 3960 0b111101111000
494 0b111101110 3952 0b111101110000
493 0b111101101 3944 0b111101101000
492 0b111101100 3936 0b111101100000
491 0b111101011 3928 0b111101011000
490 0b111101010 3920 0b111101010000
489 0b111101001 3912 0b111101001000
488 0b111101000 3905 0b111101000001
487 0b111100111 3896 0b111100111000
486 0b111100110 3888 0b111100110000
485 0b111100101 3880 0b111100101000
484 0b111100100 3873 0b111100100001
483 0b111100011 3864 0b111100011000
482 0b111100010 3857 0b111100010001
481 0b111100001 3849 0b111100001001
480 0b111100000 3846 0b111100000110
480
2
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
26.09.2022, 13:38
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
for n in range(750, 1, -1):
    x = n
    count_1 = x.bit_count()
    count_0 = x.bit_length() - count_1
    for _ in range(3):
        if count_0 == count_1:
            x = (x << 1) | (x % 2)
        else:
            x = (x << 1) | (count_0 > count_1)
        count_0 += x % 2 == 0
        count_1 += x % 2 == 1
 
    if x % 2 == 0 and x % 4 != 0:
        print(n)
        break
4
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.09.2022, 13:38
Помогаю со студенческими работами здесь

Подсчитать количество нулей и единиц в двоичной записи элементов массива
Помогите, пожалуйста объединить две программы, в одну. Точнее заменить какую-то часть программы. Сам сделать не могу т.к. не понимаю. ...

Найти количество чисел, делящихся на К, в двоичной записи которых ровно М единиц и N нулей
Помогите пожалуйста, не понимаю как решать. __________________________________________________ Заданы целые числа М, N и К (M+N &lt;=...

Определить чего больше в двоичной записи произвольного числа: единиц или нулей?
Друзья, помогите пожалуйста. Есть код программки, которая считает количество нулей в двоичной записи произвольного числа. #include...

Посчитать количество нулей в двоичной записи записи числа
сосчитать количество нулей в двоичной записи записи i

Количество нулей в двоичной записи числа
Мне нужно посчитать количество нулей в двоичной записи числа. Как стандартными функциями можно получить двоичное представление числа, а...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru