|
|
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
Уважаемые, прошу подсказки в следующем вопросе. Тема жизненная. Есть спутниковая антена, к ней мотор. Хочу запрограммировать алгорит поворота антены к спутнику, но поиски пока не увенчались успехом. Описание задачи: Есть к примеру четыре константных шага мотора: 0.2 0.7 1.3 2.6 Есть длинна пути равная: 86 Задача: найти сумму шагов мотора, которая максимально бы приближалась к заданной. Пример: 2.6 + 2.6 + 2.6 .... + 1.3 = 86 З.Ы. Комбинация чисел может быть любой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2010, 22:48:59 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
admiral.diver, в голову приходит только деление на цело. Попробуй общую сумму разделить на больший. Остаток на более меньший шаг. Тут будут погрешности, но они зависемы от шага. Более точный ответ, я думаю, только перебором можно определить. А нельзя найти наименьший шаг прирощения и оперировать им? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2010, 23:11:29 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
Это шутко, да? Ну возьми 430 шагов по 0.2 или 43 шага по 0.7 и 43 шага по 1.3. Вообще задача имеет счётное число решений. Любая комбинация четырёх натуральных чисел n1, n2, n3, n4 такая что 0 < 86 / (sqrt(0.2^2 + 0.7^2 + 1.3^2 + 2.6^2)*sqrt(n1^2 + n2^2 + n3^2 + n4^2)) < 1 должна быть решением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2010, 23:49:23 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
Жара, моск плавится. Предыдущий мой пассаж - в игнор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2010, 00:02:44 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
В подобного рода задачах ставят цели несколько отличные от алгоритмических. К примеру - минимизировать износ двигателя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2010, 00:03:37 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
Воопщем вот те две крайности: максимальное количество шагов - 430 по 0.2 минимальное количество шагов - 33 по 2.6, 1 по 1.3, 1 по 0.7 между этими двумя вариантами - ещё туева хуча. Тебе все штоль нужны? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2010, 00:14:48 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
mayton, Задача описана - максимизировать точность приближения. Но кажется, что это развод на зачетную задачу =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2010, 00:44:18 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
Это не инженерная постановка. Ибо несеръёзно всё. Лучше-бы её описывать в алгоритмических традициях. Типа там.. "Knapsack problems", "Translocation of masses" e.t.c. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2010, 00:54:56 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
Mozokmayton, не забываем про задачу о ранце :). Очень интересный вариант решения. Посижу после работы над ним. Возможно это то что мне нужно. Собственно начальные данные представлены образно. В действительности шаг мотора описывается числом с точностью до тысячных (т.е. три знака после запятой). Почему они так сделали - хз. Задача действиетльно реальна. Если кому не вериться, могу предоставить доку по РЕСИВЕРУ. Погрешность перемешения устроит с точностью до сотых или хотя бы до десятых. Спасибо всем, кто подкинул идей. Может что еще подскажите, буду признателен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2010, 12:33:24 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
Mozok, А вот я забыл =) Действительно, это именно то, что нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2010, 13:22:05 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
АльмалексияMozok, А вот я забыл =) Действительно, это именно то, что нужно. имхо, деление нацело оптимальней. ведь тебе не количество способов нужно, а один (и неужели самый оптимальный?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2010, 13:41:26 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
если можно менять направление движения ( вращения ), то алгоритм с рюкзком не подходит например 0.5 = 0.7 - 0.2 +и что понимается под максимальным приближением ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2010, 14:30:54 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
реализовывал такое точь в точь. Рекурсивно решай, строчек десять кода ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2010, 14:41:23 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#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. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2010, 15:28:40 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#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. 38. 39. 40. 41. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2010, 15:43:58 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
И еще немного эвристики. Отсортировать в обратном порядке. Это гарантия что в первую очередь будут использоваться самые большие шаги и дальше, если не будут найдены подходящие комбинации, меньшие шаги. list.Add(2.6) list.Add(1.3) list.Add(0.7) list.Add(0.2) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2010, 15:55:36 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#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. 38. 39. 40. 41. 42. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2010, 16:04:36 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
CL> (defconstant stepLength (list 0.2 0.7 1.3 2.6 -0.2 -0.7 -1.3 -2.6)) STEPLENGTH > (defun dist (x y) (declare (short-float x y)) (abs (- x y)) ) DIST > (defun doStep (curLength) (declare (short-float curLength)) (loop with maxStep = (find-if #'(lambda (x) (= (dist curLength x) (apply #'min (mapcar #'(lambda (x) (dist curLength x)) stepLength)))) stepLength) return (if (> (abs (- curLength maxStep)) (abs curLength)) curLength ;else (doStep (- curLength (print maxStep))) ) ) ) DOSTEP >(dostep 46) 2.6000000000000001 2.6000000000000001 2.6000000000000001 2.6000000000000001 2.6000000000000001 2.6000000000000001 2.6000000000000001 2.6000000000000001 2.6000000000000001 2.6000000000000001 2.6000000000000001 2.6000000000000001 2.6000000000000001 2.6000000000000001 2.6000000000000001 2.6000000000000001 2.6000000000000001 1.3 0.69999999999999996 -0.20000000000000001 -1.3933298959045715E-14 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2010, 18:23:31 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
код пади подлинее чем на визуал васике так "навищо платыты бильше"(с) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2010, 19:08:48 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
rstudio, чем измеряли :)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2010, 19:11:22 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
визуально :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2010, 19:19:36 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
если на шарпе переписать можно и побайтно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2010, 19:19:57 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
rstudio, загони код в Ворд и посчитай символы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2010, 19:28:27 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
Mozok, Долго мериться будите? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2010, 19:51:40 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
Альмалексия, пока минимум не найдем :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2010, 19:54:01 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
рстудио, а вы сами то свой код тестировали? Если да, то что у вас вышло? У меня с вашим кодом получается 26 шагов по 2.6 и 4 шага по 0.7, что есть 70.4. ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2010, 22:40:30 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
Прошу прощения за безыскусное решение конкретно этой задачи - как-то не хотелось применять общие методы без особой нужды. Но зато у него есть большой плюс - оно быстро работает (максимум - один рекурсивный вызов), памяти, соответственно, не жрет и для указанных коэффициентов всегда находит оптимальное решение по кол-ву шагов. Возможно не оптимальное, но близкое - доказывать лениво как-то. Идея заключается в том, что для четных значений легко вычисляется оптимум используя коэффициенты 2.6; 2 * 0.7 = 14; 0.2. 1.3 не нужен - потому что 2*1.3 = 2.6. А для нечетных чисел производится попытка выбрать оптимальный коэффициент приведения к четному - то есть - оценить, что лучше вычесть 1.3, 0.7 или 1. Последний применяется только для чисел меньших 0,7 (что приведет к потере точности). Для всех остальных чисел (больше или равным 0,7) алгоритм позволяет всегда получить точное значение. Значения задаются в целых числах, умноженные на 10. то есть 86,5 задается как 865. Код: 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. 42. 43. 44. 45. 46. 47. 48. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2010, 02:24:31 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
Задача о рюкзаке.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2010, 11:49:51 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
mikhail_nрстудио, а вы сами то свой код тестировали? Если да, то что у вас вышло? У меня с вашим кодом получается 26 шагов по 2.6 и 4 шага по 0.7, что есть 70.4. ??? Лень было посчитать :) теперь все чики-поки :) Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2010, 12:29:26 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
Mozokrstudio, загони код в Ворд и посчитай символы. Вы действительно решили мерятся кодом ? Я давно хотел померять код в процедурном языке с чемто функциональным. Во мне давно теплится мысль что в функциональном программировании программы частенько выходят банально длинее. Я уже не говорю о том что сложнее :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2010, 12:35:48 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
rstudio, "внатуре" решил померяться :). Прошу ваш пример на шарпе, ибо примеры на бейсике больше в 2 раза. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2010, 12:50:57 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2010, 13:12:20 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
rstudio, а этот код хоть работает :)? Вот, навскидку, уже в объявлении йункции тип переменных L - это что такое? Да и переменная r ничем не инициализируется. Вы ошибочки поправьте-то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2010, 13:23:15 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
admiral.diver, Ограничения 0.2a + 0.7b + 1.3c + 2.6d=86 a>=0 b>=0 c>=0 d>=0 a,b,c,d - целые Целевая функция a+b+c+d >= min Ну а дальше симплекс-метод и его частный случай с условием на целостность переменных. Так, не? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2010, 13:47:10 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
Тыжных Иванadmiral.diver, Целевая функция a+b+c+d -> min ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2010, 14:32:19 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
Mozokrstudio, а этот код хоть работает :)? Вот, навскидку, уже в объявлении йункции тип переменных L - это что такое? Да и переменная r ничем не инициализируется. Вы ошибочки поправьте-то. работает работает :) Код: plaintext 1. 186 байт как и было :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2010, 14:36:06 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
rstudio Код: plaintext 1. Это нормально - суммировать число и список ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2010, 14:41:41 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
Mozokrstudio, а этот код хоть работает :)? Вот, навскидку, уже в объявлении йункции тип переменных L - это что такое? Да и переменная r ничем не инициализируется. Вы ошибочки поправьте-то. работает работает :) Код: plaintext 1. 186 байт как и было :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2010, 14:55:17 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
Mozokrstudio, а этот код хоть работает :)? Вот, навскидку, уже в объявлении йункции тип переменных L - это что такое? Да и переменная r ничем не инициализируется. Вы ошибочки поправьте-то. работает работает :) Код: plaintext 1. 186 байт как и было :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2010, 15:08:44 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
пардон, интернет заглючил :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2010, 15:09:17 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
Mozokrstudio Код: plaintext 1. Это нормально - суммировать число и список ? так ну ты уже не придирайся, давай свою версию. Мне после каждого чиха оптимизаций по коду лениво перепроверять, но не волнуйся, опечатки механические, алгоритм эквивалентен с васиковским Если нужно будет, отладим :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2010, 15:11:18 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
rstudio, дык, я и не придираюсь. Просто хочу увидеть рабочую версию. Мой код вот работает без всякой отладки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2010, 15:18:36 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
Есть такая рабочая версия и все теже <190 байт. ЗЫ: Вообщем я бы не тратил время на отладку, отладку можно провести в конце, просто для контроля что оптимизация не была достигнута в счет утраты работоспособности. итак счет 190/365 пользу шарпа. Ваш ход 190_байт Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2010, 20:08:49 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
тут еще глянул, два else там не нужны. 185 байт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2010, 20:44:50 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
rstudio, изменил в вашей программе 86 на 85,05. Получил зависание. Уверяю, что у меня такого не произойдет :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2010, 21:00:49 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
Mozokrstudio, изменил в вашей программе 86 на 85,05. Получил зависание. Уверяю, что у меня такого не произойдет :). Это шутка наверное такая. Счастливые обладатели компилятора Лиспа или чего то там думают что их корч работает наверное на квантовых процессорах ЗЫ: Для задачи не имеющей решение программа не зависает, а оставив эвристику уходит в полный перебор комбинаций. Решения для чисел с нормальным десятичным знаком ( как по условию задачи ) решения находятся в доли секунды. ЗЫЗЫ: Все еще с надеждой увидеть версию в в 185-1 байт :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2010, 21:14:10 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
кстате, проревьювил тут ваш код. Что это за рассово неправильные обьявления за пределами функции. Повод для оптимизации моего кода, 153 байта уже :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2010, 21:42:07 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
rstudio153 байта уже :)размер файла проекта и то что студия нагенерила не учитываем, да? ;-)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 00:27:29 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
egorychrstudio153 байта уже :)размер файла проекта и то что студия нагенерила не учитываем, да? ;-)) а зачем его учитывать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 00:46:51 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
rstudioа зачем его учитывать ?действительно, зачем? - 153 байта красивее звучит ведь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 00:57:26 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
egorychrstudioа зачем его учитывать ?действительно, зачем? - 153 байта красивее звучит ведь помойму вы просто не в теме. Если мне ставят задачу написать код, который будет решать определенную задачу, то я скажу что на шарпе это можно оформить функцией размером в 153 байта. Не понимаю, что вас смущает. А что я еще должен посчитать ? Ассемблерные комманды нагенерированные компилятором, размер клиентского кода, дизайнер код студии, юнит тесты для тестирования функционала функции ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 01:13:46 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
rstudioНе понимаю, что вас смущаетменя смущает, что цифра "153 байта" в приложении к шарпу - это ниачём, просто число, ладно бы ещё на С, имела бы хоть какой-то смысл, тоже, довольно сомнительный. Вы чем меряетесь, собственно, количеством нажатий на клавиатуру, штоле? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 01:42:11 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
Символы - отстой. В современной IDE и слова набирать нетрудно. Нужна другая формула посчёта. Но в этой ветке меряются пиписьками. Экономят даже на нажатиях enter. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 10:09:11 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
Кстати, это ведь не просто задача о рюкзаке, это - частный случай, который называется рюкзак со сверхрастущими весами (superincreasing knapsack problem). Сверхрастущая последовательность - это такая последовательность, где каждый последующий элемент больше суммы всех предыдущих. Например, известная последовательность (1,2,4,8) - сверхрастущая, что позволяет легко и однозначно решать проблему представления чисел в двоичном виде. Отличается этот случай тем, что имеет линейную сложность, в отличии от общего случая, являющегося NP-полной задачей. Именно поэтому ее можно решить за время O(n). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 10:15:53 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
terasСверхрастущая последовательность - это такая последовательность, где каждый последующий элемент больше суммы всех предыдущих. Например, известная последовательность (1,2,4,8) - сверхрастущая Геометрическая прогрессия - сверхрастущая? Или наоборот любая сверхрастущая... и т.д ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 10:23:17 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
egorych[quot rstudio] Вы чем меряетесь, собственно, количеством нажатий на клавиатуру, штоле? да, именно компактность языка и меряем. Зачем писать на Лиспе, если там могут выходить программы банально в два раза длинее, я уже не говорю сложнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 11:06:03 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
maytonterasСверхрастущая последовательность - это такая последовательность, где каждый последующий элемент больше суммы всех предыдущих. Например, известная последовательность (1,2,4,8) - сверхрастущая Геометрическая прогрессия - сверхрастущая? Или наоборот любая сверхрастущая... и т.д ?геометрическая - в зависимости от множителя. например при 1 - нет, а при 2 - да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 11:08:06 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
maytonСимволы - отстой. В современной IDE и слова набирать нетрудно. Нужна другая формула посчёта. Но в этой ветке меряются пиписьками. Экономят даже на нажатиях enter. предложите свою формулу подсчета. Если нету, то мимо калитки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 11:08:08 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
Считайте слова, лексемы, токены, блоки операторов. В противном случае победит язык у которого короче ключевые слова. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 11:13:56 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
Если честно, то я думаю что Сишный синтаксис популярен как раз из-за своей компактности. На нем можно писать компактные программы. Но всеже шарп это императивная разработка. Все еще задается алгоритм. Если бы это записать скажем в двух трех выражениях\словах и получить программу которая займет скажем не 153 байта, а 20-30 байт, вотето действительно был бы мощный язык. На таком языке эта задача заняла бы не 5-10 минут программиста, а максимум минуту ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 11:19:18 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
maytonСчитайте слова, лексемы, токены, блоки операторов. В противном случае победит язык у которого короче ключевые слова. Никто не хочет набирать в языке длинные ключевые слова. Поэтому если они есть в языке - это однозначный недостаток. В Лиспе и Си обилие скобок, думаю длину ключевых слов можно здесь упустить. Побайтный замер исходников и лучше и проще и практичней. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 11:23:39 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
rstudioНа нем можно писать компактные программы. Но всеже шарп это императивная разработка. Все еще задается алгоритм. Если бы это записать скажем в двух трех выражениях\словах и получить программу которая займет скажем не 153 байта, а 20-30 байт, вотето действительно был бы мощный язык. На таком языке эта задача заняла бы не 5-10 минут программиста, а максимум минуту ... Будьте осторожны. В попытках писать компактный код, создали язык "Трахо-мозг" и ему подобные, где каждая директива занимала около одного символа. На олипиадах и тестах я-бы расмотрел Haskel-решение из-за его компактности и Форт из-за уникальной парадигмы которую я до конца не понимаю, но чувствую определённый интерес. До кучи еще и Caml с Эрлангом. С-решение, вопреки замыслам создателей получается не слишком компактным. В основном из-за макропроцессора (!) как это ни странно. Посмотрите хедеры любого промышленного кода операционок и прочего сложного софта и сильно удивитесь насколько там много пре-* обработки исходника. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 11:38:30 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
не путайте. В моем решении на шарпе, один форич, и два-три ифа. Никакого трахомозга. Я просто хочу увидеть более компактное решение на функциональном языке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 12:06:52 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
Итак Господа присудствующие, меня заботит всего одна мысль. Где Маэстро Mozok ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 12:19:09 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
rstudioкстате, проревьювил тут ваш код. Что это за рассово неправильные обьявления за пределами функции. Повод для оптимизации моего кода, 153 байта уже :) Каюсь, в старой версии определение списка возможных шагов вынесено отдельно. Исправил на передаваемый параметр. Вот окончательный вариант: 137 байт Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Хотелось бы увидеть хоть ваш аналог в 153 байта. P. S. Предлагаю все-таки не учитівать пробелы, код читать легче :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 12:28:58 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
rstudio Где Маэстро Mozok ? Да мне, вообще-то, работать еще надо, кроме как с вами тут развлекаться :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 12:32:22 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
137 байт string F(string s, decimal c, decimal d) { string r=""; foreach (decimal v in l) if (r == "") { s += v.ToString(); r = (c + v == d) ? s : (c + v < d) ? F(s, c + v, d) : ""; } return r; } Вообщем нужно подумать. Мне вотети десимал десимал стринг стринг ... не нравятся ... здесь можно еще будет ужать Пока что ничья ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 13:00:12 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
rstudio Пока что ничья ;) Протестую. 153 > 137. Шарп пока проигрывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 13:05:47 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
Маэстро, плюсик вверху левой кнопкой мыши ) Код на 137 байт уже в студии :) Вас пока что (!) только спасает что унтипизировано кастрированный Лисп позволяет не песать ключевых слов вроде string или decimal. В моем же коде таких слов шесть, и как назло шарп не дает пронаследоваться от примитивных типов. Вот тебе и пироги от ООП. Иначе бы от шести неугодных слов в коде удалось бы избавитсья. Но я еще думаю о воркэраунд ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 13:14:12 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
rstudioунтипизировано кастрированный Лисп "Это не баг, это фича!" 100 байт Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. И требую доюавить l к списку передаваемых параметров. У меня-то список возвожных шагов передается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 13:29:47 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
о, лошадка на треть челюсти вперед 136 байт [SRC с#] string F(string s, decimal c, decimal d) { string r = ""; foreach (decimal v in l) if (r == "") { s += v.ToString(); v += c; r = (v == d) ? s : (v < d) ? F(s, v, d) : ""; } return r; } [/SRC] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 13:31:28 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
Mozokrstudioунтипизировано кастрированный Лисп "Это не баг, это фича!" + 100 байт Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. И требую доюавить l к списку передаваемых параметров. У меня-то список возвожных шагов передается. Эй, ковбой. А где у тебя распечатка пройденого пути :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 13:32:50 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
132 байта Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 13:38:15 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
rstudio, все еще не вижу передачи списка возможных шагов через параметры. Мне тоже убрать? rstudioЭй, ковбой. А где у тебя распечатка пройденого пути :) Для незнакомых с Лиспом объясняю: путь возвращается как результат функции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 13:49:40 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
Mozokrstudio, все еще не вижу передачи списка возможных шагов через параметры. Мне тоже убрать? можно убрать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 13:56:50 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
120 байт и 6 ключевых слов типизированного языка, пока что не нашел как обойти. Но на кону больше 30 байт ! Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 13:59:55 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
rstudio, давай-давай. Хотя, конечно, форма представления результата просто аховая - нечитаемая строка из чисел и точек. То ли дело у меня - красивый(ня!) список из отдельных элементов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 14:37:25 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
Блин, тут на рабочие обязанности нужно к сожалению отвлекаться. Вообщем пока что есть такой код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. И ты сильно не расстраивайся, но он ковбой занимает не иначе как 58 байт Но есть у него конечно минус, результат нужно смотреть через стек когда срейсится эксепшин Вообщем я еще подумаю над этим, чтобы цывильненько отобразить результат. Благо запас еще есть по сравнению с твоими 100 :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 14:59:51 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
To be continued ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 15:00:56 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
Ладно, пускай пока будет этот вариант на 92 байта. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 15:45:38 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
rstudiod /= d; А это зачем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 15:50:06 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
maytonrstudiod /= d; А это зачем? Когда d=0 срейсится эксепшин, деление на ноль, и мы развернем стек вызовов. В стеке Queue будет лежать ископая цепочка элементов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 15:52:49 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
rstudio, в таком случае требую учитывать весь код дебаггера как производящий результат. Или же пишите try catch для нормальной обработки исключений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 16:06:39 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
Mozokrstudio, в таком случае требую учитывать весь код дебаггера как производящий результат. Или же пишите try catch для нормальной обработки исключений. Причем здесь код дебагера и причем здесь как снимать код решения с функции ? Я использую только стандартные средства языка :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 16:09:27 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
rstudio Причем здесь код дебагера и причем здесь как снимать код решения с функции ? Я использую только стандартные средства языка :) То есть, на компе без JIT дебаггера в релизной сборке вы тоже сможете получить результат :)? Не смешите мои тапочки. Раз уж такая пьянка, предлагаю вообще убрать деление на d. Юзер сам в пошаговке смотрит, какое значение в Queue и жмет на брейк, если результат достигнут. P.S. У Лиспа тоже есть дебаггер. 85 байт Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 16:32:13 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
rstudio Причем здесь код дебагера и причем здесь как снимать код решения с функции ? Я использую только стандартные средства языка :) Вы используете стандартные средства среды разработки. Без студии и дебаггера ваш код просто вылетит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 16:37:07 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
авторЮзер сам в пошаговке смотрит, какое значение в Queue и жмет на брейк, если результат достигнут. У меня для версии в 92 байта дебагер не нужен. А там где нужен дебагер, версия занимает 58 байт Значение снимается очень просто, и хоть с коммандной строки. Код: plaintext 1. 2. 3. Так что там, Лисп сливает на своем же поле, в решении логически-рекурсионных задач ? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 16:42:04 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
Лисп это как Ламборджини в деревне, немного подрочил и пошел работать на тракторе (с) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 16:44:06 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
Дык... Пора вылезать из деревень... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 16:53:28 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
rstudio Так что там, Лисп сливает на своем же поле, в решении логически-рекурсионных задач ? :) Вы невнимательно читаете мои посты. P.S. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 16:57:03 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
ну дык плюшки где, где плюшки ... Зачем себе сношать мозг функциональным программированием если тоже на шарпе можно записать и понятней и короче :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 17:00:03 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
Mozokrstudio Так что там, Лисп сливает на своем же поле, в решении логически-рекурсионных задач ? :) Вы невнимательно читаете мои посты. P.S. Пример относится к контексту сообщения ? Эта версия нормально возвращает результат или уже только с дебагером ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 17:04:57 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
rstudio, да, совсем забыл убрать объявления переменных. 63 байта Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 17:05:30 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
так что там с версией ? у меня нет возможности не запустить не проверить, к сожалению ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 17:10:12 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
rstudio, ну, надо только навесить при вызове *break-on-signals* и ві сможете увидеть результат. Причем без всякого дебаггера :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 17:20:11 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
Mozokrstudio, ну, надо только навесить при вызове *break-on-signals* и ві сможете увидеть результат. Причем без всякого дебаггера :). так это не самодостаточная функция, если зависит от настроек среды. Функция должна быть такой, что ее можно запаковать в библиотеку и распространять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 17:25:30 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
rstudio, а это не настройка среды, это оператор :). Хотя я с ним я промахнулся, он как раз вызывает дебаггер. Нужный нам оператор - это handler-case (аналог try/catch) Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 17:33:36 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
Скажи хоть где Лисп то учил ? ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 17:38:02 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
rstudio, на работе. Периодически приходится писать на нем штуки-дрюки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 17:41:52 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
Короче опять все уперлось в парочку деклараций. Шарп типизированный язык и это ему плюс. Лисп чтото вроде васика ранних версий в типизации :) Короче есть некоторые соображения на 50 байт, но попозже. Пока эксперименты токо :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 17:43:31 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
Mozokrstudio, на работе. Периодически приходится писать на нем штуки-дрюки. Не на Теремках случаем ? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 17:51:03 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
rstudio, нет, я ближе к центру работаю, на Жилянской.. P.S. 54 байта Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 18:00:35 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
стырил ты у меня алгоритм полностью, и убрал декларации, ну да ладно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 18:08:43 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
rstudio, не стырил, а повторил для чистоты эксперимента :).. Хочешь - можешь попробовать реализовать мой первоначальный алгоритм с минимизацией отклонения, работающий не только "для чисел с нормальным десятичным знаком" (С) rstudio. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 18:16:01 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
вообщем тебе нет смысла присылать новый, более компактный алгоритм, ты его просто императивно "передрешь" и уберешь типизацию :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 19:46:21 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
admiral.diverЗадача действиетльно реальна. Нереальна. Сам много програмировал тарие штуки для разных оптических девайсов, главное плавно разогнать и остановить. То есть вначале разгонять от малых шагов к большим, стараясь чтобы момент инерции нарастал одинаковыми шагами, потом также тормозить. Антена дура большая, если менять скорость от 0 до максимума сразу, может и не повернуться куда надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 22:30:34 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
Ломовой процедурный код, находит решение для 85.05 (вариант с минимальным отклонением) с той же скоростью что и для 86 (точное решение) за счёт того что не лопатит многократно одни и теже тупиковые ветви. Типа более грамотный полный перебор... Код: 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. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2010, 01:59:36 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
rstudio, в общем, шарп слил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2010, 02:21:50 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
Mozokrstudio, в общем, шарп слил. давай Лисп не будет под кальку копировать конструкции шарпа, а чтото из модного списка пускай использует. Вроде списков лямда выражений или чего там еще. Так спор довольно безсмысленен. Ты копируешь чужой код и просто удаляешь декларации в унтипизированом языке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2010, 12:19:33 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
предлагаю всем разработчикам выложить результаты работы их алгоритмов для следующего интервала значений 15.5 15.6 15.7 ... 18.1 18.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 11:26:54 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
15.5 = 5x2.6 + 1x1.3 + 6x0.2 15.6 = 6x2.6 15.7 = 5x2.6 + 1x1.3 + 2x0.7 15.8 = 6x2.6 + 1x0.2 15.9 = 5x2.6 + 1x1.3 + 2x0.7 + 1x0.2 16.0 = 6x2.6 + 2x0.2 16.1 = 5x2.6 + 1x1.3 + 2x0.7 + 2x0.2 16.2 = 6x2.6 + 3x0.2 16.3 = 6x2.6 + 1x0.7 16.4 = 6x2.6 + 4x0.2 16.5 = 6x2.6 + 1x0.7 + 1x0.2 ............. 16.9 = 6x2.6 + 1x1.3 ............. 17.5 = 6x2.6 + 1x1.3 + 3x0.2 ............. 18.0 = 6x2.6 + 1x1.3 + 1x0.7 + 2x0.2 18.1 = 6x2.6 + 1x1.3 + 6x0.2 18.2 = 7x2.6 вообщем у меня чуство что для всех длин путей из этого диапазона существует точное решение и посему сравнивать результат не очень интересно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 20:23:10 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
2 All Ветка засохла? Предлагаю сообществу обратить внимание на одну, интересную и похожую на сабж, на мой взгляд проблему, а именно на Бинарную Проблему Гольбаха и подумать над различными мыслями, идеями и реализациями. Своей мысли у меня пока нет, кроме prime-генераторов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2010, 13:53:28 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
mikhail_n в интервале 16.6 ... 16.8 найдены решения ? с моей точки зрения в этой задаче надо найти все решения от 0.1 до 18.1 с шагом 0.1 решения ищутся один раз после этого расчет любого расстояния L L1 = 18.2 * int ( L / 18.2 ) ' расчитываем сколько влезает полных 18.2 заменяем их на 2.6 * 7 остаток = L - L1 < 18.2 уже расчитан 18.2 = 2.6 * 7 хотя может нужно считать не до 18.2 + правильнее все считать в целых на вопрос возможен ли ход назад 0.5 = 0.7 - 0.2 автор топика не ответил ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2010, 14:33:19 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
Ну молдешшш... Сырцы то выложены, могли бы сами скомпилить и проверить. 16.6 = 6x2.6 + 5x0.2 16.7 = 6x2.6 + 1x0.7 + 2x0.2 16.8 = 6x2.6 + 6x0.2 L1 = 18.2 * int ( L / 18.2 ) ' расчитываем сколько влезает полных 18.2 заменяем их на 2.6 * 7 остаток = L - L1 < 18.2 уже расчитан 18.2 = 2.6 * 7 хотя может нужно считать не до 18.2 А почему до 18.2? Потому что 18.2 = 7x2.6 а 7 у нас магическое число? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2010, 19:58:45 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
компилировать не начем да и не к чему 18.2 минимальный размер на котором отрезки 2.6 и 0.7 укладываются целое число раз ( 0.2 и 1.3 тем более ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2010, 10:17:43 |
|
||
|
Алгоритм поиска суммы
|
|||
|---|---|---|---|
|
#18+
admiral.diver, Почти наверное все возможные шаги двигла кратны некоторому наибольшему общему делителю (либо шагу серво, либо, что вероятнее для больших тарелок и быстрых поворотов, шагу угломера). Соответственно возьмите этот делитель за единицу измерения и шагов мотора и целевого угла. Задача станет целочисленной, о сумме и монетках, которыми её надо набрать. Линейное диофантово уравнение . Получаете список монеток, и складываете их следующим образом: возьмите половину монет каждого номинала и складываете в порядке возрастания, потом оставшиеся складываете в порядке убывания. Т.е. если решение нашлось 25+25+25+7+7+3+3+3, то лучше двигетель включать как 3+3+7+25+25+25+7+3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2010, 23:14:29 |
|
||
|
|

start [/forum/topic.php?all=1&fid=16&tid=1343597]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
202ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
95ms |
get tp. blocked users: |
2ms |
| others: | 232ms |
| total: | 579ms |

| 0 / 0 |
