|
|
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
в последнне время как обычно перед сессией увеличилось кол-во постов от учащихся с просьбой решить элементарные задачи по программированию( сложить, умножить матрицы и т.д. ) меня тоже настигла эта волна в виде бывшего одногруппника, который в разговоре по аське поделился печалью как он решал задачу по програмированию 2 дня. мне стало очень интересно .. условие задачи он скинул - и ничего экстраординарного в ней не было.. у меня на решение данного примера ушло около 15 минут - это гораздо меньше но не показательно, дело в том что одногруппник весьма далек от программирования Условиеданы числа 1, 2, 3, 4, 5, 6, 7. Как их сложить, используя все семь, чтобы получилось 99. Пример сложения: 1+2+3+54+67, 21+34+7+6+5, 1+2+3+4+5+6+7 1+27+3+46 и т.д. меня боле заинтересовало на сколько сильно можно оптимизировать решение, на сколько туго закрутиь все гайки. чтобы получить максимальный результат. и так предлагаю что-то вроде конкурса на самое оптимальное решение: 1. по скорости 2. по количеству строк кода мой вариант смотрите ниже - Цель в жизни определяет все.. Выбор есть всегда.. Но мы часто не хотим его делать.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2007, 19:18 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#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. 60. 61. 62. 63. 64. 65. 66. из принципа оптимизации следует ввести проверку числа В : В должно быть меньше 86 так как 1+2+3+4+5 +B(86) >99 - Цель в жизни определяет все.. Выбор есть всегда.. Но мы часто не хотим его делать.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2007, 19:24 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. Цель в жизни определяет все.. Выбор есть всегда.. Но мы часто не хотим его делать.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2007, 19:28 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
-Sergey-... и так предлагаю что-то вроде конкурса на самое оптимальное решение: 1. по скорости 2. по количеству строк кода ... 3. лучше на понятность кода а то ish, vart и прочая куча вложенных циклов и условий ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2007, 19:54 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
-Sergey-Как их сложить, используя все семь, чтобы получилось 99. По-моему, никак. Выходит ноль результатов. -Sergey-1. по скорости Лень, честно говоря. -Sergey-2. по количеству строк кода Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2007, 20:01 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
Странно, мой код сказал, что таких комбинаций нет :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2007, 20:05 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2007, 20:08 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
Тут негде соревноваться по скорости. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2007, 20:09 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
я тож не нашёл 64 варианта самый близкий 1 + 23 + 4 + 5 + 67 = 100 тото он второй день решает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2007, 20:45 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
-Sergey-мой вариант смотрите ниже 1) мешанина из Си и С++ 2) обилие нечитаемых имен переменных 3) возможно считает не правильно. В условии не сказано что можно одну и туже цифру использовать дважды. Впрочем и запрета на это нету, хотя он обычно подразумевается в таких задачах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2007, 20:54 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
White Owl.. 3) возможно считает не правильно. В условии не сказано что можно одну и туже цифру использовать дважды. Впрочем и запрета на это нету, хотя он обычно подразумевается в таких задачах. вот блин, я не заметил даже, что их можно переставлять ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2007, 21:04 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
0bsidсамый близкий 1 + 23 + 4 + 5 + 67 = 100 Да, если скорректировать, вариантов полно. Например, без единицы: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2007, 21:05 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
0bsid softwarer and other да я действительно не сказал что мой вариант "условно" правильный. :-) При заданных условиях (не использовать перестановку , использовать цифру только один раз ) толку в нем ноль.. 3. читабельность кода(оформление) - это хороший критерий , и мой код на него не претендует, но учитывать его стоит. по признаку 2 и 3 наиболее удачным является пример softwarer - Цель в жизни определяет все.. Выбор есть всегда.. Но мы часто не хотим его делать.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2007, 22:00 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
если кому-то еще данный топик интересен предлагаю следующую задачку Условие: написать функцию которая на входе получает байт а на выходе возвращает количество установленных в нем битов, написать несколько вариантов функции : а) опитимизованный по памяти б) оптимизированный по скорости данную задачу я прочитал давно на каком-то форуме посвященному поиску работы, и на авторство не предендую. - Цель в жизни определяет все.. Выбор есть всегда.. Но мы часто не хотим его делать.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2007, 22:21 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
-Sergey- Условие: написать функцию которая на входе получает байт а на выходе возвращает количество установленных в нем битов, написать несколько вариантов функции : а) опитимизованный по памяти б) оптимизированный по скорости данную задачу я прочитал давно на каком-то форуме посвященному поиску работы, и на авторство не предендую. Возникают сомнения в том, что здесь вообще что-то можно оптимизировать. Алгоритм известен 100 лет и туп как дрова. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2007, 22:59 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
Алгоритм - слишком громкое слово Упражнение на знание системы команд. Для Эльбруса - одна команда - ПЧЕ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2007, 23:21 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
:( -Sergey- Условие: написать функцию которая на входе получает байт а на выходе возвращает количество установленных в нем битов, написать несколько вариантов функции : а) опитимизованный по памяти б) оптимизированный по скорости данную задачу я прочитал давно на каком-то форуме посвященному поиску работы, и на авторство не предендую. Возникают сомнения в том, что здесь вообще что-то можно оптимизировать. Алгоритм известен 100 лет и туп как дрова. код в студию :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 00:24 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
ИзопропилАлгоритм - слишком громкое слово Упражнение на знание системы команд. Для Эльбруса - одна команда - ПЧЕ к сожаления с Эльбрусом не знаком, но я не занал что существует стандартное решение данной задачи.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 00:28 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
массив из 256 элементов, содержащтй к-во единиц в байте, используемом как индекс массива - как самое быстрое устроит? Оптимизированный по памяти - в каких попугаях измерять будем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 00:43 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
ИзопропилАлгоритм - слишком громкое слово Упражнение на знание системы команд. Для Эльбруса - одна команда - ПЧЕ фигасе. какие люди ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 00:48 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
Можно смело писать вот так (особенно, когда у нас двухбатовые и более числа). Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 00:52 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
:(Можно смело писать вот так (особенно, когда у нас двухбатовые и более числа). Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. вместо BITS [i] мог бы написать (1<<i) и убрать массив BITS ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 11:16 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
ИзопропилОптимизированный по памяти - в каких попугаях измерять будем? на сколько я помню критерием выступало количество переменных и их размерность - чем больше количество используемых для вычисления переменных тем менее эфективен код по памяти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 11:24 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
0bsid вместо BITS мог бы написать (1<<i) и убрать массив BITS оптимизирующему компилятору - по барабану, он цикл развернёт, а константы -вместо выборки из массива - будет сам сдвигом в регистре формировать. Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 12:01 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
Изопропил 0bsid вместо BITS мог бы написать (1<<i) и убрать массив BITS оптимизирующему компилятору - по барабану, он цикл развернёт, а константы -вместо выборки из массива - будет сам сдвигом в регистре формировать. Вопрос остаётся - в каких попугаях будем измерять оптимизацию по памяти? Код: plaintext по идее должно быть shl dl, 1 вообще задача для 7-классника ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 12:10 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
0bsidвместо BITS мог бы написать (1<<i) и убрать массив BITS Мог бы. Только не хотел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 12:13 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#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. 1-ый кусок кода выполняется за 984 мс, 2-ой за 485 мс 3-ий за 375 мс , вот такая вот загогулина. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 14:05 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
если же в первом варианте алгоритма, мы меняем проверку по массиву, на Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 14:16 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. Возвращает 0. Как это работает? Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 14:18 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
MAPA3OTесли же в первом варианте алгоритма, мы меняем проверку по массиву... Код: plaintext 1. 2. 3. 4. Значит мое предположение об интеллектуальности компилятора Java не оправдалось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 14:20 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
тэк-с, удалось еще чуть-чуть сократить время Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 14:21 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
MAPA3OTтэк-с, удалось еще чуть-чуть сократить время Займись чем-нибудь полезным :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 14:25 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
работает нормально, только не правильно :) Кстати, второй вариант тоже косячный :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 14:33 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
:(Странно, мой код сказал, что таких комбинаций нет :( Скорее всего можно использовать не только +, но и - : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Фактически решение в 8 строчек :) Результат: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2007, 12:43 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
NotGonnaGetUs "99=1+2+34+5-67" калькулятор утверждает, что это выражение = -25 ((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2007, 12:46 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
egorych NotGonnaGetUs "99=1+2+34+5-67" калькулятор утверждает, что это выражение = -25 ((( Есть такое. Багс :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2007, 12:49 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
egorych NotGonnaGetUs "99=1+2+34+5-67" калькулятор утверждает, что это выражение = -25 ((( Тоже самое без багов: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Результат: Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2007, 13:13 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
NotGonnaGetUs Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2007, 19:01 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
White Owl NotGonnaGetUs Код: plaintext На чем-то лиспоподобном. Медленное, тормознутое, для реальных задач неприменимое, но вот поиграться — отличная штука. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2007, 19:13 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
White Owl NotGonnaGetUs Код: plaintext Очень похоже на Хаскелл. Но, мне кажется, решение неправильное, т.к. перестановки цифр не учитываются... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2007, 20:59 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
Да, задача конечно тупая - нужно фактически все перестановки и все склейки рассмотреть. Для 99 у меня решения нет. А вот для 100 - 8352 варианта. Время расчета - 5 секунд (правда на бесплатном учебном компиляторе ) Реализация, разумеется, на самом лучшем языке программирования - Лиспе (диалект - Scheme). Код не очень красивый, но и алгоритм не строгий с точки зрения математики... Перебор дурацкий ведь... Код: 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. Результат выполнения: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2007, 22:36 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
Егорище85 Время расчета - 5 секунд (правда на бесплатном учебном компиляторе ) На тормознутой джаве эта задача занимает неощутимые доли миллисекунды. Лисп решает, ясен перец. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2007, 23:26 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
:( Егорище85 Время расчета - 5 секунд (правда на бесплатном учебном компиляторе ) На тормознутой джаве эта задача занимает неощутимые доли миллисекунды. Лисп решает, ясен перец. Ну да, такие задачи конечно же очень часто встречаются. Лисп имеет сильную привязку к математике, конкретно к лямбда-исчислению, поэтому задачи полного перебора для него неестественны. Если хотите, чтобы быстро работало - берите голый С и высчитывайте мили- и микросекунды... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2007, 23:52 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
:( White Owl NotGonnaGetUs Код: plaintext На чем-то лиспоподобном. Медленное, тормознутое, для реальных задач неприменимое, но вот поиграться — отличная штука. Напрасно так думаете. Всего раз в 8 медленнее, чем java %) Егорище85 Очень похоже на Хаскелл. Но, мне кажется, решение неправильное, т.к. перестановки цифр не учитываются... Он самый. При желании, можно расширить задачу расстановкой скобок :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2007, 10:07 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
NotGonnaGetUsПри желании, можно расширить задачу расстановкой скобок :) для сложения/вычитания расстановка скобок ни помочь, ни помешать не может ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2007, 10:27 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
egorych NotGonnaGetUsПри желании, можно расширить задачу расстановкой скобок :) для сложения/вычитания расстановка скобок ни помочь, ни помешать не может Ну мы же не в первом классе. Добавим возможность использовать * и / :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2007, 10:37 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
NotGonnaGetUsОн самый. При желании, можно расширить задачу расстановкой скобок :) Приятно увидеть любителя функциональных языков. Давно с хаскеллом играетесь? Используете его для реальных задач? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2007, 13:18 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
NotGonnaGetUsНапрасно так думаете. Всего раз в 8 медленнее, чем java %) А что за компилятор использовали? Hugs 98? Дело ведь наверно не только в самом языке... Кстати у меня работает так долго потому что алгоритм самый дубовый был выбран - все перестановки, а это 7! а потом все возможные парные склейки подряд (без изменения порядка), а это еще около 2^7. Наверно можно как-то хитрее задачу решить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2007, 13:22 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
1) Мысль дурацкая шевельнулась, что надо-де BCD-арифметику использовать. Пока обосновать не могу... Внутренний голос советует 2) Есть один сайтец, где подобные задачки (проблемы) решают каждый день, да еще и конкурсы устраивают. Как-бишь его... Забыл... 3) Эх... нету Ксенофонта... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2007, 13:54 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
Егорище85 NotGonnaGetUsНапрасно так думаете. Всего раз в 8 медленнее, чем java %) А что за компилятор использовали? Hugs 98? Дело ведь наверно не только в самом языке... Кстати у меня работает так долго потому что алгоритм самый дубовый был выбран - все перестановки, а это 7! а потом все возможные парные склейки подряд (без изменения порядка), а это еще около 2^7. Наверно можно как-то хитрее задачу решить... ghc. Сделал твой алгоритм на haskell (чтобы сравнить лаконичность кода и время работы одного и того же дубового алгоритма): Код: 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. Получаются теже 8352 вариантов для 1..7 и 100. Код: plaintext 1. Хаскелл круче лиспа :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2007, 16:03 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
NotGonnaGetUsХаскелл круче лиспа :) По красоте кода - да. Насчет скорости я грешу всё же на интерпретатор, Scheme - упрощенный диалект лиспа и интерпретатор Dr.Scheme предназначен всё же для учебных задач. Фиг знает, как это будет работать на Common Lisp, я пока ещё не дорос... Хаскелл - лучшее воплощение функциональной парадигмы, поэтому код такой красивый и изящный. Но Лисп, в свою очередь, лучше реализует возможности метапрограммирования. У меня есть ощущение, что при умелом обращении из Лиспа можно гораздо больше выжать, чем из Хаскелла. Кстати, вот статья Пола Грэма, которую Ксеноцефал рекомендовал почитать - http://startupjournal.ru/articles-graham-lisp.php (на русском). Довольно интригующе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2007, 16:44 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
Прикольно всё-таки. Решение на haskell: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Занимает количество строк меньшее, чем одна только генерация всех перестановок на java или любом другом мейнстрим языке... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2007, 16:51 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
NotGonnaGetUsПрикольно всё-таки. Решение на haskell: ... Занимает количество строк меньшее, чем одна только генерация всех перестановок на java или любом другом мейнстрим языке... :) softwarer уже дал решение на Delphi :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2007, 17:33 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
Пример того, как нельзя решать задачи по програмированию Консольное на С++. MS VS 2005. Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2007, 20:08 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
:(softwarer уже дал решение на Delphi :) И чего? Где там генерация перестановок и прочии прелести "дубового" алгоритма, готовые к реюзу? Если на дельфи реализовать тот же самый алгоритм будет существенно больше кода. Эквивалент алгоритма softwarer'a на хаскелл вот: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Как видно, он эффективнее дубового алгоритма в 10 раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2007, 20:29 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
NotGonnaGetUs И чего? Где там генерация перестановок и прочии прелести "дубового" алгоритма, готовые к реюзу? Зачем нам дубовый алгоритм? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2007, 21:10 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
:( NotGonnaGetUs И чего? Где там генерация перестановок и прочии прелести "дубового" алгоритма, готовые к реюзу? Зачем нам дубовый алгоритм? Дубовой задаче - дубовый алгоритм Кстати, а что думают опытные люди, может ли решение подобных задач научить чему-нибудь полезному? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2007, 21:18 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
Егорище85Кстати, а что думают опытные люди, может ли решение подобных задач научить чему-нибудь полезному?Может. Научит внимательно работать с циклами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2007, 22:12 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
:(Зачем нам дубовый алгоритм? Затем: NGGU Сделал твой алгоритм на haskell (чтобы сравнить лаконичность кода и время работы одного и того же дубового алгоритма) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2007, 22:15 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
-Sergey- у меня на решение данного примера ушло около 15 минут - это гораздо меньше но не показательно, дело в том что одногруппник весьма далек от программирования Условиеданы числа 1, 2, 3, 4, 5, 6, 7. Как их сложить, используя все семь, чтобы получилось 99. Пример сложения: 1+2+3+54+67, 21+34+7+6+5, 1+2+3+4+5+6+7 1+27+3+46 и т.д. меня боле заинтересовало на сколько сильно можно оптимизировать решение, на сколько туго закрутиь все гайки. чтобы получить максимальный результат. и так предлагаю что-то вроде конкурса на самое оптимальное решение: 1. по скорости 2. по количеству строк кода - Если строго читать задание, то самое оптимальное решение по обоим критериям такое: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2007, 12:03 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
а 0x99 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2007, 14:00 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
Условиеданы числа 1, 2, 3, 4, 5, 6, 7. Как их сложить, используя все семь, чтобы получилось 99. Пример сложения: 1+2+3+54+67, 21+34+7+6+5, 1+2+3+4+5+6+7 1+27+3+46 и т.д. Никак, сумма цифр не делится на 9. Если использовать можно не все цифры, то при поиске подходящих вариантов нужно использовать это условие, можно еще признак делимости на 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.01.2008, 01:52 |
|
||
|
еще одна задача по прогаммированию
|
|||
|---|---|---|---|
|
#18+
-Sergey- ИзопропилОптимизированный по памяти - в каких попугаях измерять будем? на сколько я помню критерием выступало количество переменных и их размерность - чем больше количество используемых для вычисления переменных тем менее эфективен код по памяти. sb=bait; while(bait/=2) sb-=bait; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.01.2008, 02:19 |
|
||
|
|

start [/forum/topic.php?all=1&fid=16&tid=1345591]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
175ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
119ms |
get tp. blocked users: |
1ms |
| others: | 245ms |
| total: | 590ms |

| 0 / 0 |
