|
|
|
Быстрый алгоритм разложения числа на простые множители
|
|||
|---|---|---|---|
|
#18+
Решил написать задачу разложения числа на просты множители пример:16=2*2*2*2.В общем вышел следующий алгоритм.Думаю он стандартный и все хотя бы раз с ним сталкивались. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Дело в том что я озадачен написанием намного быстрого алгоритма.Что бы он считал число 2*10^9 за 0.1сек.У кого ни будь есть алгоритмы на примете ?Можете поделится ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 17:34 |
|
||
|
Быстрый алгоритм разложения числа на простые множители
|
|||
|---|---|---|---|
|
#18+
гугли по ключевому слову "факторизация". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 17:44 |
|
||
|
Быстрый алгоритм разложения числа на простые множители
|
|||
|---|---|---|---|
|
#18+
Число простое, если не делится без остатка на все простые меньше или равные корню этого числа. sqrt(2*10^9) = 44721 Можешь массивом забить. Можешь мой генератор взять ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 17:57 |
|
||
|
Быстрый алгоритм разложения числа на простые множители
|
|||
|---|---|---|---|
|
#18+
Добро пожаловать в клуб почитателей Миллера-Рабина, Эратосфена, Эвклида и Ландау. Сабж называется как верно подметили - Факторизация. Твой алгоритм "на глазок" содержит избыточные деления в том случае если аргумент A будет изначально очень большим и простым числом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 19:29 |
|
||
|
Быстрый алгоритм разложения числа на простые множители
|
|||
|---|---|---|---|
|
#18+
maytonТвой алгоритм "на глазок" содержит избыточные деления в том случае У него и так до хрена будет лишних делений... нафига пробовать в качестве множителя все чётные, кроме двойки? К тому же, если верхний предел аргумента = 2г, можно использовать статическую или предрасчитанную таблицу простых чисел до 45к. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2015, 09:29 |
|
||
|
Быстрый алгоритм разложения числа на простые множители
|
|||
|---|---|---|---|
|
#18+
Кстати, как вы думаете, какая асимптотическая сложность у самого простого способа определения простоты числа n (проверка всех чисел до корня из n) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2015, 15:17 |
|
||
|
Быстрый алгоритм разложения числа на простые множители
|
|||
|---|---|---|---|
|
#18+
В принципе тут заменить Код: sql 1. на Код: sql 1. думаю достаточно для ванмомас намбаванЧто бы он считал число 2*10^9 за 0.1сек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2015, 15:22 |
|
||
|
Быстрый алгоритм разложения числа на простые множители
|
|||
|---|---|---|---|
|
#18+
SashaMercuryКстати, как вы думаете, какая асимптотическая сложность у самого простого способа определения простоты числа n (проверка всех чисел до корня из n) ? Насчёт сложности пока не скажу надо подумать. Но небольшое уточннение. Из личного наблюдения и экспериментов. Определение простоты не всегда равно факторизации. Тоесть если тебе нужно очень быстро с вероятностью 99.99.. доказать что число простое - используют другой метод. Его используют на практике для генерации ключей ЕМНП в криптографии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2015, 15:32 |
|
||
|
Быстрый алгоритм разложения числа на простые множители
|
|||
|---|---|---|---|
|
#18+
maytonИз личного наблюдения и экспериментов. Определение простоты не всегда равно факторизации. равно факторизации только в том случае если n простое число, всё ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2015, 04:13 |
|
||
|
Быстрый алгоритм разложения числа на простые множители
|
|||
|---|---|---|---|
|
#18+
ванмомас намбаванДело в том что я озадачен написанием намного быстрого алгоритма.Что бы он считал число 2*10^9 за 0.1сек.У кого ни будь есть алгоритмы на примете ?Можете поделится ? Тут обещают разложение чисел до 10^18 за одну миллисекунду :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2015, 14:23 |
|
||
|
Быстрый алгоритм разложения числа на простые множители
|
|||
|---|---|---|---|
|
#18+
?ванмомас намбаванДело в том что я озадачен написанием намного быстрого алгоритма.Что бы он считал число 2*10^9 за 0.1сек.У кого ни будь есть алгоритмы на примете ?Можете поделится ? Тут обещают разложение чисел до 10^18 за одну миллисекунду :) У тебя недостаточно знаний чтобы воплотить это решение. Разве что кто-то за тебя напишет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2015, 15:39 |
|
||
|
Быстрый алгоритм разложения числа на простые множители
|
|||
|---|---|---|---|
|
#18+
mayton?пропущено... Тут обещают разложение чисел до 10^18 за одну миллисекунду :) У тебя недостаточно знаний чтобы воплотить это решение. Разве что кто-то за тебя напишет.Да ну. Там же написаноАлгоритм является чрезвычайно простым, красивым и эффективным.Так что ничего сложного ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2015, 16:04 |
|
||
|
|

start [/forum/topic.php?fid=16&fpage=34&tid=1340913]: |
0ms |
get settings: |
5ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 200ms |
| total: | 323ms |

| 0 / 0 |
