powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Пятничный треугольник
25 сообщений из 188, страница 5 из 8
Пятничный треугольник
    #39783353
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в третьем варианте кажется тоже накосячил
...
Рейтинг: 0 / 0
Пятничный треугольник
    #39783358
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BarloneDima Tпропущено...

Еще возможно 15 и один из 3,4,5.
Упс, косяк, исправляем... check на самом другой, запутался своих в пометках.
Проверяем 12,13,14,15
Так 7 хватает
...
Рейтинг: 0 / 0
Пятничный треугольник
    #39783359
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Barloneв третьем варианте кажется тоже накосячил
Давай правильный. Я до него еще не добрался.

PS Как ты это изобрел? У меня от проверки мозг закипает )))
...
Рейтинг: 0 / 0
Пятничный треугольник
    #39783360
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BarloneТретий случай. check(1,2,15)=false, check(3,6,7)=true
Проверяем 7-14
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
check(7,8,9,10,11,12,13,14)
3,7          |
3,8          | (3,4) (3,5) (3,6)
3,9          |
3,10         |---check(3)---
3,11         |
3,12         |  (4,6) (4,7)
3,13         |  (5,6) (5,7)
3,14         |
При положительном результате (слева) всегда 3 + один из 7-14, который выберем за 3 шага делением пополам.
При отрицательном результате (справа) проверяем 3. Сверху + снизу -. Дальше понятно.
Это неправильно, на самом деле так: проверяем 4,5,6,7
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
check(4,5,6,7)
3,8          |  (3,4) (3,5) 
3,9          |  (3,6) (3,7) 
3,10         |
3,11         |---check(3)---
3,12         |
3,13         |  (5,6) (5,7)
3,14         |  (4,6) (4,7)
слева отрицательный результат, справа положительный
...
Рейтинг: 0 / 0
Пятничный треугольник
    #39783364
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TPS Как ты это изобрел? У меня от проверки мозг закипает )))Так выписывал все возможные пары и подбирал проверки, делящие их пополам, дальше по рекурсии каждую половину. Иногда получается, что пополам никак не хочет делиться, и приходится вернуться назад и попробовать поделить по другому на более раннем шаге :)
...
Рейтинг: 0 / 0
Пятничный треугольник
    #39783369
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BarloneТак выписывал все возможные пары и подбирал проверки, делящие их пополам, дальше по рекурсии каждую половину. Иногда получается, что пополам никак не хочет делиться, и приходится вернуться назад и попробовать поделить по другому на более раннем шаге :)Кстати, почти готовый алгоритм для автоматической генерации 21826770
...
Рейтинг: 0 / 0
Пятничный треугольник
    #39783393
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борисmayton,
Мы один столбец матрицы рассматриваем. Когда N=1 - очевидно логарифм.
Я ошибся в таблице
7-10 611-14 715-18(?) 8
Отношение N/M, сдается мне, должно к гамма-распределению (N-параметр) сводиться.Ну для 7 то точно достаточно 5 тестов. Для 15 вроде после исправлений нормально за 7 шагов получается.
...
Рейтинг: 0 / 0
Пятничный треугольник
    #39783401
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BarloneDima Tтогда для 15 неправильно С(2,15)=105, т.е. тоже 7, а ответ 8.

PS Я не считал, просто заметил что log2(91) = log2(105)А вы попробуйте доказать, что за 7 невозможно :)Я кстати начал с того, что пытался доказать невозможность. А получилось вот так.
...
Рейтинг: 0 / 0
Пятничный треугольник
    #39783408
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже работает твой алгоритм за 7 замеров, не нашел больше косяков.
...
Рейтинг: 0 / 0
Пятничный треугольник
    #39783417
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Barlone,

непонятно только как его масштабировать на общий случай
...
Рейтинг: 0 / 0
Пятничный треугольник
    #39783448
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм... Дельфи с формочками.
...
Рейтинг: 0 / 0
Пятничный треугольник
    #39783485
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BarloneBarloneпропущено...
А вы попробуйте доказать, что за 7 невозможно :)Я кстати начал с того, что пытался доказать невозможность. А получилось вот так.

Теперь можно начать с того, что попытаться доказать невозможность для 2 из 16 )
...
Рейтинг: 0 / 0
Пятничный треугольник
    #39783529
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 измерения их не разделить.
...
Рейтинг: 0 / 0
Пятничный треугольник
    #39783530
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
1)  1..5 +
2)  1,2,15 +
3)  1,6 +
4)  8..15 +
    1!(0) 8..15!(3)
4)  8..15 -
5)  1 +
6)  2 +
    1,2!!(0)
6)  2 -
    1,6!!(0)
5)  1 -
    2,6!!(0)
3)  1,6 -
4)  3..5,7..11 +
    2!(0) 3..5,7..11!(3)
4)  3..5,7..11 -
5)  2 +
    2!(0) 12..15!(2)
5)  2 -
    15!(0) 12..14!(2)
2)  1,2,15 -
3)  3,6,7 +
4)  4,5,6,7 +
5)  3 +
    3!(0) 4..7!(2)
5)  3 -
    4,5!(1) 6,7!(1)
4)  4,5,6,7 -
    3!(0) 8..14!(3)
3)  3,6,7 -
4)  4 +
    4!(0) 5,8..14!(3)
4)  4 -
    5!(0) 8..14!(3)
1)  1..5 -
2)  6..9 +
3)  10..13 +
    6..9!(2) 10..13!(2)
3)  10..13 -
4)  14..15 +
    6..9!(2) 14..15!(1)
4)  14..15 -
    6..9!!(3)
2)  6..9 -
3)  10..13 +
4)  14..15 +
    10..13!(2) 14..15!(1)
4)  14..15 -
    10..13!!(3)
3)  10..13 -
    14..15!!(0)
...
Рейтинг: 0 / 0
Пятничный треугольник
    #39783531
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как же формула?
BarloneНижняя граница - двоичный логарифм числа сочетаний из N по M (с округлением вверх).
...
Рейтинг: 0 / 0
Пятничный треугольник
    #39783532
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Переходим к 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.
При другом числе шаров для первого измерения в одной из веток получим еще больше вариантов.
...
Рейтинг: 0 / 0
Пятничный треугольник
    #39783535
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Barlone,

спасибо
...
Рейтинг: 0 / 0
Пятничный треугольник
    #39783536
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TА как же формула?
BarloneНижняя граница - двоичный логарифм числа сочетаний из N по M (с округлением вверх).
Так нижняя же, при некоторых значениях N недостижимая (дважды уже повторял). В чем вообще ее смысл - если нашли алгоритм с таким числом шагов, то быстрее точно не получится. А если не нашли - то надо либо искать дальше, либо пытаться доказать, что это невозможно.
...
Рейтинг: 0 / 0
Пятничный треугольник
    #39783546
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот примерно с такого же я пытался начать доказывать, что 2 из 15 за 7 шагов нельзя, но С(2;15) - С(2;10) = 60, и эти 60 за 6 шагов получилось поделить.
...
Рейтинг: 0 / 0
Пятничный треугольник
    #39783549
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Barlone,
доказать возможность гораздо легче, чем невозможность - достаточно пример
во втором же случае неудачные примеры доказательством не являются, если конечно речь не о доказательстве какого-то конкретного алгоритма, а у нас его пока нету

например, до прошлого века вообще считали, что невозможно умножать быстрее чем O(N^2)
...
Рейтинг: 0 / 0
Пятничный треугольник
    #39783560
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)Barlone,
доказать возможность гораздо легче, чем невозможность - достаточно пример
во втором же случае неудачные примеры доказательством не являются, если конечно речь не о доказательстве какого-то конкретного алгоритма, а у нас его пока нету

например, до прошлого века вообще считали, что невозможно умножать быстрее чем O(N^2)То есть мое доказательство 21827278 вас не убедило?
...
Рейтинг: 0 / 0
Пятничный треугольник
    #39783565
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BarloneТо есть мое доказательство 21827278 вас не убедило?это всего лишь доказательство невозможности с использованием конкретного алгоритма, а не общее

я так же могу доказать что "проверкой одного" в общем случае нужно провести (N-K) замеров
...
Рейтинг: 0 / 0
Пятничный треугольник
    #39783571
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan), ну тут то количество возможных алгоритмов конечно - 2 N вариантов одного теста (2 N -2 если выкинуть явно бессмысленные варианты проверять 0 шаров или сразу все шары).
...
Рейтинг: 0 / 0
Пятничный треугольник
    #39783591
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
Пятничный треугольник
    #39783592
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Barlone,
опечатался
С(16, 2) = 120 , log2(120) = 6,90689059560852 ->7
...
Рейтинг: 0 / 0
25 сообщений из 188, страница 5 из 8
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Пятничный треугольник
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]