|
Пятничный треугольник
|
|||
---|---|---|---|
#18+
в третьем варианте кажется тоже накосячил ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2019, 09:33 |
|
Пятничный треугольник
|
|||
---|---|---|---|
#18+
BarloneDima Tпропущено... Еще возможно 15 и один из 3,4,5. Упс, косяк, исправляем... check на самом другой, запутался своих в пометках. Проверяем 12,13,14,15 Так 7 хватает ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2019, 09:38 |
|
Пятничный треугольник
|
|||
---|---|---|---|
#18+
Barloneв третьем варианте кажется тоже накосячил Давай правильный. Я до него еще не добрался. PS Как ты это изобрел? У меня от проверки мозг закипает ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2019, 09:40 |
|
Пятничный треугольник
|
|||
---|---|---|---|
#18+
BarloneТретий случай. check(1,2,15)=false, check(3,6,7)=true Проверяем 7-14 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
При отрицательном результате (справа) проверяем 3. Сверху + снизу -. Дальше понятно. Это неправильно, на самом деле так: проверяем 4,5,6,7 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2019, 09:41 |
|
Пятничный треугольник
|
|||
---|---|---|---|
#18+
Dima TPS Как ты это изобрел? У меня от проверки мозг закипает )))Так выписывал все возможные пары и подбирал проверки, делящие их пополам, дальше по рекурсии каждую половину. Иногда получается, что пополам никак не хочет делиться, и приходится вернуться назад и попробовать поделить по другому на более раннем шаге :) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2019, 09:45 |
|
Пятничный треугольник
|
|||
---|---|---|---|
#18+
BarloneТак выписывал все возможные пары и подбирал проверки, делящие их пополам, дальше по рекурсии каждую половину. Иногда получается, что пополам никак не хочет делиться, и приходится вернуться назад и попробовать поделить по другому на более раннем шаге :)Кстати, почти готовый алгоритм для автоматической генерации 21826770 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2019, 09:51 |
|
Пятничный треугольник
|
|||
---|---|---|---|
#18+
Соколинский Борисmayton, Мы один столбец матрицы рассматриваем. Когда N=1 - очевидно логарифм. Я ошибся в таблице 7-10 611-14 715-18(?) 8 Отношение N/M, сдается мне, должно к гамма-распределению (N-параметр) сводиться.Ну для 7 то точно достаточно 5 тестов. Для 15 вроде после исправлений нормально за 7 шагов получается. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2019, 10:33 |
|
Пятничный треугольник
|
|||
---|---|---|---|
#18+
BarloneDima Tтогда для 15 неправильно С(2,15)=105, т.е. тоже 7, а ответ 8. PS Я не считал, просто заметил что log2(91) = log2(105)А вы попробуйте доказать, что за 7 невозможно :)Я кстати начал с того, что пытался доказать невозможность. А получилось вот так. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2019, 10:40 |
|
Пятничный треугольник
|
|||
---|---|---|---|
#18+
Похоже работает твой алгоритм за 7 замеров, не нашел больше косяков. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2019, 10:48 |
|
Пятничный треугольник
|
|||
---|---|---|---|
#18+
Barlone, непонятно только как его масштабировать на общий случай ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2019, 11:03 |
|
Пятничный треугольник
|
|||
---|---|---|---|
#18+
Хм... Дельфи с формочками. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2019, 11:38 |
|
Пятничный треугольник
|
|||
---|---|---|---|
#18+
BarloneBarloneпропущено... А вы попробуйте доказать, что за 7 невозможно :)Я кстати начал с того, что пытался доказать невозможность. А получилось вот так. Теперь можно начать с того, что попытаться доказать невозможность для 2 из 16 ) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2019, 12:27 |
|
Пятничный треугольник
|
|||
---|---|---|---|
#18+
Aleksandr SharahovBarloneпропущено... Я кстати начал с того, что пытался доказать невозможность. А получилось вот так. Теперь можно начать с того, что попытаться доказать невозможность для 2 из 16 )Ну на 2 из 16 точно нужно 8 шагов. NC(2;N)steps3324635104615 5 7215828 6 9366104561155 7 12667137871491715105716120 8 Вот такая табличка пока. Для N = 6, 8, 11, 16 получается необходимое число измерений больше, чем округление вверх двоичного логарифма числа сочетаний по 2 из N. Как вообще такое можно доказать? Ну примерно так: До первого измерения все равноправны, поэтому тут важно только количество шаров, от выбора номеров ничего не зависит. Изначальное число вариантов C(2;N). Если у нас N шаров и на первом тесте мы проверяем K из них, то при отрицательном результате мы получаем задачу меньшей размерности: с N-K шарами. А при положительном результате первого теста ситуация получается более сложная, но общее количество оставшихся вариантов получается C(2;N)-C(2;N-K). Для 6 я уже писал почему недостаточно 4 измерений, ну давайте еще раз напишу. Если на первом шаге измерять один шар, то при отрицательном ответе мы остались с 5 шарами, на которые надо 4 измерения. А если на первом шаге измерять 2 шара, то при отрицательном ответе у нас остается 4 шара (тут 3 измерений достаточно), но при положительном ответе у нас остается С(2;6) - С(2;4) = 15-6 = 9 вариантов, за 3 измерения их не разделить. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2019, 13:24 |
|
Пятничный треугольник
|
|||
---|---|---|---|
#18+
maytonХм... Дельфи с формочками. Ну, вот вам иначе. Дерево проверок для алгоритма Barlone 2 из 15. 1. Если после группы стоят восклицательные знаки, то их количество точно равно количеству звенящих шаров. 2. Если после группы стоит число в скобках, то это число точно равно максимальному количеству проверок. Код: pascal 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2019, 13:30 |
|
Пятничный треугольник
|
|||
---|---|---|---|
#18+
А как же формула? BarloneНижняя граница - двоичный логарифм числа сочетаний из N по M (с округлением вверх). ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2019, 13:32 |
|
Пятничный треугольник
|
|||
---|---|---|---|
#18+
Переходим к 8 шарам. Можно попробовать взять для первого измерения 2 или 3 шара (в других случаях будет только хуже). Если возьмем 2, то при отрицательном ответе приходим к задаче 6 шаров, для которой надо 5 измерений. Если возьмем 3, то при положительном ответе остается С(2;8) - С(2;5) = 28 - 10 > 16 и опять нужно еще 5. Теперь 11 шаров. Если первый раз будем мерять 3 шара, при отрицательном ответе приходим к задаче 8 шаров, на которую как только что показали, нужно 6 измерений. Если первый раз меряем 4, С(2;11) - С(2;7) = 55 - 21 > 32 и опять еще 6. Ну и 16 шаров. Первый раз меряем 5 шаров, ну и тут по 7 измерений в обоих ветках - либо 11 шаров, либо 120 - 55 > 64. При другом числе шаров для первого измерения в одной из веток получим еще больше вариантов. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2019, 13:37 |
|
Пятничный треугольник
|
|||
---|---|---|---|
#18+
Barlone, спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2019, 13:41 |
|
Пятничный треугольник
|
|||
---|---|---|---|
#18+
Dima TА как же формула? BarloneНижняя граница - двоичный логарифм числа сочетаний из N по M (с округлением вверх). Так нижняя же, при некоторых значениях N недостижимая (дважды уже повторял). В чем вообще ее смысл - если нашли алгоритм с таким числом шагов, то быстрее точно не получится. А если не нашли - то надо либо искать дальше, либо пытаться доказать, что это невозможно. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2019, 13:42 |
|
Пятничный треугольник
|
|||
---|---|---|---|
#18+
Вот примерно с такого же я пытался начать доказывать, что 2 из 15 за 7 шагов нельзя, но С(2;15) - С(2;10) = 60, и эти 60 за 6 шагов получилось поделить. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2019, 13:52 |
|
Пятничный треугольник
|
|||
---|---|---|---|
#18+
Barlone, доказать возможность гораздо легче, чем невозможность - достаточно пример во втором же случае неудачные примеры доказательством не являются, если конечно речь не о доказательстве какого-то конкретного алгоритма, а у нас его пока нету например, до прошлого века вообще считали, что невозможно умножать быстрее чем O(N^2) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2019, 13:55 |
|
Пятничный треугольник
|
|||
---|---|---|---|
#18+
kealon(Ruslan)Barlone, доказать возможность гораздо легче, чем невозможность - достаточно пример во втором же случае неудачные примеры доказательством не являются, если конечно речь не о доказательстве какого-то конкретного алгоритма, а у нас его пока нету например, до прошлого века вообще считали, что невозможно умножать быстрее чем O(N^2)То есть мое доказательство 21827278 вас не убедило? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2019, 14:14 |
|
Пятничный треугольник
|
|||
---|---|---|---|
#18+
BarloneТо есть мое доказательство 21827278 вас не убедило?это всего лишь доказательство невозможности с использованием конкретного алгоритма, а не общее я так же могу доказать что "проверкой одного" в общем случае нужно провести (N-K) замеров ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2019, 14:23 |
|
Пятничный треугольник
|
|||
---|---|---|---|
#18+
kealon(Ruslan), ну тут то количество возможных алгоритмов конечно - 2 N вариантов одного теста (2 N -2 если выкинуть явно бессмысленные варианты проверять 0 шаров или сразу все шары). ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2019, 14:33 |
|
Пятничный треугольник
|
|||
---|---|---|---|
#18+
Barlone, я о чём и говорю, обобщённого алгоритма пока нет а вот конкретно для вашего алгоритма видно из примера, что формула log2(C(N,K)) к нему не подходит, он её не имплементирует 1-й пример: если мы берём произвольные 3, и видим что в них нет радиоактивных остаётся 12 кандидатов, С(12, 2) = 66 , log2(66) = 6,04439411935845 ->7 2-й пример: С(116, 2) = 120 , log2(120) = 6,90689059560852 ->7 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2019, 15:08 |
|
|
start [/forum/topic.php?fid=16&msg=39783360&tid=1339982]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
146ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 246ms |
total: | 498ms |
0 / 0 |