Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Пятничная задачка для ума за 1 миллион $
|
|||
|---|---|---|---|
|
#18+
Это утка. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2017, 21:23 |
|
||
|
Пятничная задачка для ума за 1 миллион $
|
|||
|---|---|---|---|
|
#18+
Вот вчера накрапал. Есть много TODO-s. Но в целом. Работает. Код: java 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. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2017, 10:49 |
|
||
|
Пятничная задачка для ума за 1 миллион $
|
|||
|---|---|---|---|
|
#18+
Я думаю... форкну тему в Java в части оптимизации массивов. Здесь - будем обсуждать алгоритмизацию а техники language-related - лучше отдельно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2017, 14:52 |
|
||
|
Пятничная задачка для ума за 1 миллион $
|
|||
|---|---|---|---|
|
#18+
Модератор взял и поудалял мои сообщения, хотя в коде реализации обсуждаемого алгоритма есть явные ошибки. Модератор: Надо указывать на ошибки, а не разводить холивар с переходом на личности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2017, 18:14 |
|
||
|
Пятничная задачка для ума за 1 миллион $
|
|||
|---|---|---|---|
|
#18+
asutp2, там нет major ошибок. Основной алгоритм-то работает? Работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2017, 18:17 |
|
||
|
Пятничная задачка для ума за 1 миллион $
|
|||
|---|---|---|---|
|
#18+
mayton, хуже нет, когда правильный алгоритм реализован с ошибками в коде. И потом получается, что на тестовых данных все работает, выпускаем в продакшн, начинаются непонятки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2017, 18:23 |
|
||
|
Пятничная задачка для ума за 1 миллион $
|
|||
|---|---|---|---|
|
#18+
asutp2, как вы определите какой алгоритм правильный а какой нет? Шарахов реализовал расстановку ферзей. На тестовых данных она работает. Я точно так-же поступаю. Супер-провидения насчет ошибок которых я не увидел у меня нет. Модульные тесты + four eyes check. Вот на чем стоит весь ентерпрайз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2017, 18:26 |
|
||
|
Пятничная задачка для ума за 1 миллион $
|
|||
|---|---|---|---|
|
#18+
И если говорить о реализации, не увидел использования распараллеливания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2017, 18:27 |
|
||
|
Пятничная задачка для ума за 1 миллион $
|
|||
|---|---|---|---|
|
#18+
asutp2И если говорить о реализации, не увидел использования распараллеливания. А что он претендовал на это? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2017, 18:30 |
|
||
|
Пятничная задачка для ума за 1 миллион $
|
|||
|---|---|---|---|
|
#18+
maytonasutp2, как вы определите какой алгоритм правильный а какой нет? Шарахов реализовал расстановку ферзей. На тестовых данных она работает. Я точно так-же поступаю. Супер-провидения насчет ошибок которых я не увидел у меня нет. Модульные тесты + four eyes check. Вот на чем стоит весь ентерпрайз.Я не знаю, правильный алгоритм или нет (не вникал). Но я вижу опубликованный код конкретной функции на delphi, содержащей явные ошибки. Мне кажется, этого вполне достаточно, чтобы судить о качестве реализации. И предполагаю, что если таким же образом написан весь остальной код алгоритма, то правильность его работы вызывает как минимум сомнение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2017, 18:30 |
|
||
|
Пятничная задачка для ума за 1 миллион $
|
|||
|---|---|---|---|
|
#18+
Можно сказать короче: там нет ошибок. Чтобы утверждать другое, необходимо привести хотя бы один пример, когда функция выдает неверный результат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2017, 18:34 |
|
||
|
Пятничная задачка для ума за 1 миллион $
|
|||
|---|---|---|---|
|
#18+
Я сделал ему своё замечание касающееся стиля разработки. И коллаборации. Кстати мой сорс опубликован здесь . Велкам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2017, 18:34 |
|
||
|
Пятничная задачка для ума за 1 миллион $
|
|||
|---|---|---|---|
|
#18+
asutp2Но я вижу опубликованный код конкретной функции на delphi, содержащей явные ошибки. Мне кажется, этого вполне достаточно, чтобы судить о качестве реализации. Вы знаете. Функция которая складывает 2 числа типа integer УЖЕ содержит ошибки. Но они касаются очень глубоких случаев behaviour когда переполняется разрядная сетка и надо принять решение. Я уверен. Что ВЫ. Шарахов. И я. И все другие разработчики в 99.99% случаев не обращают на это внимание. Хотя это баг, на который надо среагировать и покрыть это тестами хотя-бы на уровне пограничных. Но мы в энтерпрайзе обычно считаем что эти кейсов с переполнением нет и быть не может. И именно поэтому мы НЕ считаем что функция с ошибкой. Мы просто считаем что ситуация настолько маловероятна что не стоит с ней заморачиваться. Это как коллизия GUID. Она теоретически есть но всем забить на нее болт ибо вероятнее вам по башке упадет метеорит. Как то так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2017, 18:39 |
|
||
|
Пятничная задачка для ума за 1 миллион $
|
|||
|---|---|---|---|
|
#18+
Aleksandr SharahovПопробовал на поле 50000х50000 в центральный квадрат 25000х25000 случайно ставить 12500 ферзей. Завершение нашлось во всех 10 проведенных тестах. поле 50000x50000 содержит 2.500.000.000 клеток. У Integer (в delphi) максимально возможное число 2.147.483.647. Как проводились тесты с наличием потенциальной ошибка переполнения из за используемых типов данных? И еще - для поля такого размера использовано всего 10 тестов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2017, 18:45 |
|
||
|
Пятничная задачка для ума за 1 миллион $
|
|||
|---|---|---|---|
|
#18+
maytonНо мы в энтерпрайзе обычно считаем что эти кейсов с переполнением нет и быть не может. И именно поэтому мы НЕ считаем что функция с ошибкой. Мы просто считаем что ситуация настолько маловероятна что не стоит с ней заморачиваться. Это как коллизия GUID. Она теоретически есть но всем забить на нее болт ибо вероятнее вам по башке упадет метеорит.Это вы за ВСЕХ в энтерпрайзе так говорите или только за себя? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2017, 18:48 |
|
||
|
Пятничная задачка для ума за 1 миллион $
|
|||
|---|---|---|---|
|
#18+
asutp2Я не знаю, правильный алгоритм или нет (не вникал). Но я вижу опубликованный код конкретной функции на delphi, содержащей явные ошибки. Мне кажется, этого вполне достаточно, чтобы судить о качестве реализации. И предполагаю, что если таким же образом написан весь остальной код алгоритма, то правильность его работы вызывает как минимум сомнение. Хватит пороть бред. От этого код не станет неверным. Укажи конкретное место ошибки. Что должны получить и что получаем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2017, 18:52 |
|
||
|
Пятничная задачка для ума за 1 миллион $
|
|||
|---|---|---|---|
|
#18+
asutp2Aleksandr SharahovПопробовал на поле 50000х50000 в центральный квадрат 25000х25000 случайно ставить 12500 ферзей. Завершение нашлось во всех 10 проведенных тестах. поле 50000x50000 содержит 2.500.000.000 клеток. У Integer (в delphi) максимально возможное число 2.147.483.647. И что? На твой взгляд, это имеет значение, когда мы ищем единственное завершение? asutp2Как проводились тесты с наличием потенциальной ошибка переполнения из за используемых типов данных? Весь код доступен. Диапазон количества решений известен. Не увидеть тип int64 невозможно. Глаза есть? Зато есть непоколебимая уверенность в наличии ошибки. asutp2И еще - для поля такого размера использовано всего 10 тестов? Конечно, нет. Это была отладка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2017, 19:01 |
|
||
|
Пятничная задачка для ума за 1 миллион $
|
|||
|---|---|---|---|
|
#18+
Модератор: Не понимаю зачем тут приплетать энтерпрайз? Тут не курсы для джунов, не надо тут демагогию на эту тему устраивать. Какой вообще может быть энтерпрайз по расстановке ферзей? Прекращаем обсуждать подходы и стили написания кода, т.к. топик совсем не про это. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2017, 19:11 |
|
||
|
Пятничная задачка для ума за 1 миллион $
|
|||
|---|---|---|---|
|
#18+
asutp2maytonНо мы в энтерпрайзе обычно считаем что эти кейсов с переполнением нет и быть не может. И именно поэтому мы НЕ считаем что функция с ошибкой. Мы просто считаем что ситуация настолько маловероятна что не стоит с ней заморачиваться. Это как коллизия GUID. Она теоретически есть но всем забить на нее болт ибо вероятнее вам по башке упадет метеорит.Это вы за ВСЕХ в энтерпрайзе так говорите или только за себя? Я говорю за себя и за то комьюнити которое меня окружает последние лет 10-15. Ничего нового в оценке качества ПО не было придумано. Модульные тесты. UAT. Акцептенс-тестинг. И всё. Никаких других магий не придумано для поиска ошибок. И разумеется коде-ревью про которое я уже упоминал. И которое вообще ниочом и просто гарантирует что коллега во время просмотра вашего кода ни разу не воскликнул "Whats the fuck...". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2017, 19:27 |
|
||
|
Пятничная задачка для ума за 1 миллион $
|
|||
|---|---|---|---|
|
#18+
Aleksandr Sharahovasutp2Я не знаю, правильный алгоритм или нет (не вникал). Но я вижу опубликованный код конкретной функции на delphi, содержащей явные ошибки. Мне кажется, этого вполне достаточно, чтобы судить о качестве реализации. И предполагаю, что если таким же образом написан весь остальной код алгоритма, то правильность его работы вызывает как минимум сомнение. Хватит пороть бред. От этого код не станет неверным. Укажи конкретное место ошибки. Что должны получить и что получаем. ок, укажу конкретное место ошибки в IsSolutionValid: Код: pascal 1. 2. помним, что I может принимать значения в диапазоне [-2147483648..2147483647] теперь смотрим цикл Код: pascal 1. и смотрим в цикле код Код: pascal 1. последний участок кода говорит о том, что BoardSize имеет тип Cardinal. Что говорит дока делфи о Cardinal? Это беззнаковый тип, хранящий значения в диапазоне [0..4294967295]. Значит при I: Integer и BoardSize: Cardinal имеем ситуацию, что при достижении I=2147483647 цикл выполнится, а затем прервется и проверка в большем диапазоне значений не будет выполнена (т.е. когда > 2147483647). Это нормально? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2017, 20:18 |
|
||
|
Пятничная задачка для ума за 1 миллион $
|
|||
|---|---|---|---|
|
#18+
Aleksandr SharahovВесь код доступенДоступен где? Ссылку плиз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2017, 20:22 |
|
||
|
Пятничная задачка для ума за 1 миллион $
|
|||
|---|---|---|---|
|
#18+
asutp2ок, укажу конкретное место ошибки в IsSolutionValid: Код: pascal 1. 2. помним, что I может принимать значения в диапазоне [-2147483648..2147483647] теперь смотрим цикл Код: pascal 1. и смотрим в цикле код Код: pascal 1. последний участок кода говорит о том, что BoardSize имеет тип Cardinal. Последний участок кода говорит о том, что использовано явное приведение переменной c к типу cardinal, и еще о том, что тебе пора в школу, учить уроки. Переменная BoardSize имеет тип integer, и ты б это знал, если бы прежде чем делать выводы не поленился заглянуть в код. asutp2Что говорит дока делфи о Cardinal? Это беззнаковый тип, хранящий значения в диапазоне [0..4294967295]. Значит при I: Integer и BoardSize: Cardinal имеем ситуацию, что при достижении I=2147483647 цикл выполнится, а затем прервется и проверка в большем диапазоне значений не будет выполнена (т.е. когда > 2147483647). Это нормально? [/quot] Опять же, если б ты учился на пятерки, то знал бы, что при установленном знаковом бите в значении BoardSize-1 цикл вообще не начнет выполняться. Опять двойка. Это как раз тот случай, когда лучше молчать. asutp2Aleksandr SharahovВесь код доступенДоступен где? Ссылку плиз mayton, извини, придется ему отрыть тайну: http://guildalfa.ru/alsha/node/35 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2017, 21:06 |
|
||
|
Пятничная задачка для ума за 1 миллион $
|
|||
|---|---|---|---|
|
#18+
Aleksandr Sharahovif (cardinal(c)>=BoardSize) or (cardinal(r)>=BoardSize) then exit; Aleksandr SharahovПоследний участок кода говорит о том, что использовано явное приведение переменной c к типу cardinal Aleksandr SharahovПеременная BoardSize имеет тип integer Сравниваешь Integer с Integer, но первый Integer приводишь к Cardinal? Точно индусы курят нервно в стороне))))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2017, 21:35 |
|
||
|
Пятничная задачка для ума за 1 миллион $
|
|||
|---|---|---|---|
|
#18+
asutp2Aleksandr Sharahovif (cardinal(c)>=BoardSize) or (cardinal(r)>=BoardSize) then exit; Aleksandr SharahovПоследний участок кода говорит о том, что использовано явное приведение переменной c к типу cardinal Aleksandr SharahovПеременная BoardSize имеет тип integer Сравниваешь Integer с Integer, но первый Integer приводишь к Cardinal? Точно индусы курят нервно в стороне))))) Для переменных типа integer этот код эквивалентен такому Код: pascal 1. Ты не выучил урок "Прямое попадание" отсюда http://guildalfa.ru/alsha/node/20 Третья двойка. Второгодник. Достал уже. Иди лечи свои комплексы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2017, 21:43 |
|
||
|
Пятничная задачка для ума за 1 миллион $
|
|||
|---|---|---|---|
|
#18+
Йоу, посмотрел код по ссылке. Жесть. Код: pascal 1. 2. 3. 4. 5. реально что ли используются статические массивы такого размера? Код: pascal 1. што? Код: pascal 1. 2. на turbo pascal что ли пишешь?) Не увидел по ссылке обсуждаемую выше функцию. Протухшая версия? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2017, 21:47 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39533016&tid=1340254]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
67ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 178ms |

| 0 / 0 |
