Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Новогодний мега-мозг
|
|||
|---|---|---|---|
|
#18+
Вот хорошо-бы Пифагоровых троек нагенерить. Пример: Код: powershell 1. 2. 3. 4. 5. P.S. Всех с наступающим! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2013, 15:28 |
|
||
|
Новогодний мега-мозг
|
|||
|---|---|---|---|
|
#18+
Вот чуть больше 850 миллионов Код: plaintext 1. 2. 3. Думаю надо усложнить задачу добавив условие что хоть одно из чисел простое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2013, 18:23 |
|
||
|
Новогодний мега-мозг
|
|||
|---|---|---|---|
|
#18+
Гипотенуза растёт монотонно. Хм. Можно взять ее за основу. Как аргумент а катеты подбирать целочисленно. Хочется избавится от квадратного корня. И в некотором вырожденном виде существуют треугольники (0,5,5), (0,10,10). Можно старотвать развёртку угла с этого чахлого треугольника и разворачивать вплоть до 45 градусов. Дальше нет смысла т.к. будет зеркальное отражение уже найденных Пифагорских троек. А для ускорения расчёта катетов можно попробовать алгоритм Брезенхейма для рисования дуги окружности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2013, 18:23 |
|
||
|
Новогодний мега-мозг
|
|||
|---|---|---|---|
|
#18+
Dima T, да. Кст. подобные надо как-то удалять. На каждый найденный пифагорец надо быстринько поискать в базе уже найденых (ох чую нужен Стебелёк) и дропнуть его. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2013, 18:24 |
|
||
|
Новогодний мега-мозг
|
|||
|---|---|---|---|
|
#18+
как-то так Код: plaintext 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. 30. 31. 32. 33. 34. 35. 36. 37. :) PS Пример с числами до 1`000, хотел запостить до 1`000`000 но в форум не лезет. Всем желающим продолжить майнинг: качайте таблицу простых чисел и вставляйте в пример. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2013, 19:50 |
|
||
|
Новогодний мега-мозг
|
|||
|---|---|---|---|
|
#18+
Так известен же общий вид всех пифагоровых троек, так что просто пробежаться по двум параметрам (ну или трем, если хочется и не взаимно простые тройки) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2013, 23:18 |
|
||
|
Новогодний мега-мозг
|
|||
|---|---|---|---|
|
#18+
Хех... я постил где-то генерилку primes. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.12.2013, 01:27 |
|
||
|
Новогодний мега-мозг
|
|||
|---|---|---|---|
|
#18+
Dima T Код: plaintext 1. D’oh! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.12.2013, 01:41 |
|
||
|
Новогодний мега-мозг
|
|||
|---|---|---|---|
|
#18+
Primegen. По жлобски так. Сердито. Код: plaintext 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. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.12.2013, 02:48 |
|
||
|
Новогодний мега-мозг
|
|||
|---|---|---|---|
|
#18+
Если оставаться в рамках long, то "взаимно простые" это "остаток целочисленного деления не равен нулю". В чём проблема бежать во вложенном цикле по "2*m+1", считая квадраты и прочие произведения в охранном условии? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.12.2013, 13:07 |
|
||
|
Новогодний мега-мозг
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, ты про это? для некоторых натуральных взаимно простых чисел m > n , разной чётности.... Наоборот, любая такая пара чисел (m,n) задаёт примитивную пифагорову тройку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.12.2013, 13:21 |
|
||
|
Новогодний мега-мозг
|
|||
|---|---|---|---|
|
#18+
Да, именно про эту формулу. В целых числах всё должно быть быстренько. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.12.2013, 13:22 |
|
||
|
Новогодний мега-мозг
|
|||
|---|---|---|---|
|
#18+
Не додумал - в цикле ничего "охранять" не надо. Проверять надо взаимную простоту результатов. Что сложнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.12.2013, 13:29 |
|
||
|
Новогодний мега-мозг
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovНе додумал - в цикле ничего "охранять" не надо. Проверять надо взаимную простоту результатов. Что сложнее. Так вроде же m и n должны быть взамио простые. Т.е. результат на взаимную простоту проверять не надо. А генерить взаимно простые числа с разной четностью просто: m - степень двойки, n - любое нечетное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.12.2013, 14:37 |
|
||
|
Новогодний мега-мозг
|
|||
|---|---|---|---|
|
#18+
Или просто генерить m = n + 1, а n перебирать. Тоже будут взаимно простые с разной четностью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.12.2013, 14:44 |
|
||
|
Новогодний мега-мозг
|
|||
|---|---|---|---|
|
#18+
Вот так вот пока.... Подобные треугольники еще не фильтруются. pyfagor.cpp Код: plaintext 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. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.01.2014, 00:50 |
|
||
|
Новогодний мега-мозг
|
|||
|---|---|---|---|
|
#18+
Ап. С пятницей всех. Внезапно! Пора фильтровать плохие треугольники. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 13:03 |
|
||
|
Новогодний мега-мозг
|
|||
|---|---|---|---|
|
#18+
Критерий подобия. (a1,b1,c1) подобен (а2,b2,c2) тогда, когда Или в целых числах более точная формула При этом не забываем разворачивать оба треугольника так чтобы b был больше чем a Пример (8,6,10) и (3,4,5) приводим к (6,8,10) и (3,4,5) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 14:05 |
|
||
|
Новогодний мега-мозг
|
|||
|---|---|---|---|
|
#18+
Мне кажется так понятнее так написать k - коэффициент пропорциональности Я выше предлагал использовать простые числа Dima TДумаю надо усложнить задачу добавив условие что хоть одно из чисел простое. Правда не уверен что нет таких троек когда все три числа не простые и при этом нет меньшего подобного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 15:42 |
|
||
|
Новогодний мега-мозг
|
|||
|---|---|---|---|
|
#18+
Нам нельзя вычислять k - как вещественное. Мы рискуем потерять точность на треугольниках большого размера. Рациональная форма вида m/n где оба числа целые позволяет решить эту задачу точно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 15:48 |
|
||
|
Новогодний мега-мозг
|
|||
|---|---|---|---|
|
#18+
По твоему алгоритму проверки все найденные надо со всеми сравнивать на подобие. Это долго. Быстрее с помощью простых чисел меньшее подобное искать, т.е. перебрать все простые числа (k) меньше a и убедится что все три числа не делятся на k без остатка Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 15:59 |
|
||
|
Новогодний мега-мозг
|
|||
|---|---|---|---|
|
#18+
maytonНам нельзя вычислять k - как вещественное. При наличии полного набора троек всегда будет наименьшая подобная для которой k будет целое т.е. бОльшая подобная выражается как Код: plaintext 1. тут k любое число, (a,b,c) - минимальное подобное т.е. a1 = a * k т.к. a1 и a целые то k тоже должно быть целое Если подходит нецелое k то (a,b,c) - не минимальное подобное Подзабыл как это доказать математически, примерно так: раскладываем a на простые множители m1*m2*m3 находим те которые дают с умножением на k минимальное целое, например m1*m2*k, следовательно m1*m2 это то целое на которое можно разделить исходное (a,b,c) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 16:41 |
|
||
|
Новогодний мега-мозг
|
|||
|---|---|---|---|
|
#18+
Тут по сути вопрос идёт о сравннении стоимостей поиска в бинарных деревьях и стоимостей генерации простых неподобных треугольников. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 16:50 |
|
||
|
Новогодний мега-мозг
|
|||
|---|---|---|---|
|
#18+
Мне просто кажется что факторизация всех трёх (или двух?) сторон будет более затратной чем просто binary search. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 17:56 |
|
||
|
Новогодний мега-мозг
|
|||
|---|---|---|---|
|
#18+
maytonТут по сути вопрос идёт о сравннении стоимостей поиска в бинарных деревьях и стоимостей генерации простых неподобных треугольников. Я о принципиально другом подходе к проверке подобных. По твоей формуле надо сравнивать все результаты со всеми, по моей просто узнать есть ли пропорционально меньше, и наименьший считать первым. Проверять на наличие меньшего так: Код: plaintext 1. GetDivider(a, b, c) Код: plaintext 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. 30. 31. 32. т.е. GetDivider() возвращает наибольший общий делитель для тройки, поделив на который получаем минимально возможную подобную тройку. Если допилить твой код добавив игнор не минимальных, то будет так Генератор Майтона поправленный Код: plaintext 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. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. Твой алгоритм я не понял (если честно) но если он генерит все последовательно то дубли отфильтруются. PS В моем примере простые числа до 1000, можно их вычислять, но проще скачать с инета, у меня массив 78498 чисел до миллиона, но исходник в форум не лезет даже в архиве. PPS Ты цель обозначь. Чего ищем? Максимально большое и непрерывную последовательность? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 19:55 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38516129&tid=2019754]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
59ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 15ms |
| total: | 174ms |

| 0 / 0 |
