|
138 / 5 / 1
Регистрация: 25.03.2013
Сообщений: 228
|
||||||
Решето Ератосфена16.09.2013, 21:18. Показов 1907. Ответов 8
Метки нет (Все метки)
Дали код алгоритма Ератосфена для поиска простых чисел, надо в нем разобраться, знать как все работает и т.п. И как я начал разчихлять код, то сразу и стал на побитовых операциях. Понял только bits[n >> 3] и все... Кому не сложно, обьясните мне етот код коментарями около строчек в классе bitset, а если не сложно то и весь код, а то времени мало, а лабу надо здать. И немогу понять толком код. Наперед спасибо
0
|
||||||
| 16.09.2013, 21:18 | |
|
Ответы с готовыми решениями:
8
Решето Эратосфена Решето Эратосфена Решето Эратосфена |
|
Модератор
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,854
|
|||||||
| 16.09.2013, 21:39 | |||||||
|
ну вот например
надо например проверить 20 в каком байте он лежит ? 20/8=2 значит в третьем(отсчет идет с 0) n >> 3 это и есть делить на 8 берем это байт из массива bits[n >> 3] получится bits[2] там лежит 8 бит какой нам нужен? берем остаток от деления на 8 20%8=4 (пятый бит отсчет тоже от 0) n & 7 это остаток деления на 8 допустим там 1 вот так выглядит байт ххх1хххх(х это безразлично какое значение) берем 1 сдвигаем её на 4 1 << (n & 7)) получаем 00010000 потом это число и байт производим операцию "И" (выделяем бит) х х х 1 х х х х 0 0 0 1 0 0 0 0 ----------------- 0 0 0 1 0 0 0 0 полученное число сравниваем с 0 0 0 0 1 0 0 0 0 не равно 0? да(true) возвращаем true вот так можно переписать эту функцию
1
|
|||||||
|
138 / 5 / 1
Регистрация: 25.03.2013
Сообщений: 228
|
|
| 16.09.2013, 21:56 [ТС] | |
|
ValeryS, да, теперь более понятно. спасибо
0
|
|
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
|
| 16.09.2013, 22:16 | |
|
o33ik, Могу еще тебе с алгоритмом помочь если не знаешь, в общем допустим ты хочешь из 1000 чисел найти все простые, записывай эти все числа в массив из ста элементов допустим int mass[1000] и просто удаляешь из этого массива все не простые числа, от например один простое число, два простое число в массиве оставляешь два допустим равный один, берешь два умножаешь на 2 получается 4 элемент mass[4] устанавливаешь в 0 потом 2*2*2 получается 8 элеменет mass[8] устанавливаешь в 0 и так пока 2*2 * .. не будет больше 1000, потом берешь следующее простое число 3, и удаляешь из массива все множетели 3*3 пото 3*3*3 и так далее 4 уже не возьмешь потому что оно уже в 0 установлено берешь 5 для пяти удаляешь, 6 тоже не возьмешь. Короче таким макаром удаляешь из массива все не простые числа и у тебя в массиве остается только простые числа.
0
|
|
|
Модератор
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,854
|
|
| 16.09.2013, 22:27 | |
|
0
|
|
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
|
| 16.09.2013, 23:10 | |
|
ValeryS, Да я его код не смотрел, просто алгоритм помню.
Добавлено через 57 секунд Он может код видит, а что он делает не понимает.
0
|
|
|
835 / 643 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
|
||
| 17.09.2013, 12:34 | ||
|
Добавлено через 1 минуту Если чтобы быстрее работал, то в память вполне влезет обычный массив.
0
|
||
|
134 / 106 / 10
Регистрация: 22.05.2010
Сообщений: 533
|
|
| 17.09.2013, 17:43 | |
|
0
|
|
| 17.09.2013, 17:43 | |
|
Помогаю со студенческими работами здесь
9
Решето Эратосфена Решето Эратосфена Решето Эратосфена
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|