|
1 / 1 / 0
Регистрация: 31.07.2009
Сообщений: 40
|
|
Поиск алгоритма нахождения наилучшего результата14.03.2016, 12:42. Показов 934. Ответов 17
Метки нет (Все метки)
Дано:
N-ое кол-во таблиц. При объединении трех создается новая таблица (пример ниже) 1 1 1 1 + 1 1 1 0 + 1 0 0 0 = 2 1 1 1 1 0 1 0 + 1 0 1 0 + 1 0 0 0 = 1 0 1 0 0 0 0 0 + 1 0 1 0 + 0 0 0 0 = ? ? ? ? Как вы заметили: При одинаковых значениях в трех исходных таблицах значение в результирующей повышается При одинаковых значениях в двух исходных таблицах значение не меняется При несовпадении в ряде значения становятся неопределенные. Вопрос: Каким способом перебрать всё N-ое кол-во таблиц, чтобы в результате получить максимально возможное, допустим 8 8 8 8 8 8 8 8 8 8 8 8
0
|
|
| 14.03.2016, 12:42 | |
|
Ответы с готовыми решениями:
17
Блок-схема для алгоритма нахождения факториала введенного числа Реализовать блок схему алгоритма нахождения суммы наибольшего числа из 4 заданных |
|
Модератор
3132 / 2279 / 469
Регистрация: 26.03.2015
Сообщений: 8,870
|
||
| 14.03.2016, 14:12 | ||
|
Например, во второй строке второй элемент одинаковый во всех трёх таблицах, и он не изменился, а в третей строке второй элемент одинаковый во всех трёх таблицах, и он стал неопределённым.
0
|
||
|
1 / 1 / 0
Регистрация: 31.07.2009
Сообщений: 40
|
|
| 14.03.2016, 15:19 [ТС] | |
|
Прошу прощение, упустил если 0(ноль) то это признак отсутствия, то есть исключение из правил.
Добавлено через 2 минуты да и ошибка во второй строке 1 0 1 0 + 1 0 1 0 + 1 0 0 0 = 2 0 1 0
0
|
|
|
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,038
|
|||
| 14.03.2016, 15:34 | |||
|
Внимательно посмотрите свою задачу и опишите все имеющиеся правила. Добавлено через 4 минуты
0
|
|||
|
1 / 1 / 0
Регистрация: 31.07.2009
Сообщений: 40
|
|
| 14.03.2016, 16:04 [ТС] | |
|
В том то и дело, что матрица не известна, так как в будущем при объединении именно она может дать желаемый результат. N-ое кол-во матриц неизвестное. Может 10 может 500.
Разумеется можно отсечь матрицы со случайными результатами, но пренебрегать остальными нельзя. Нужен перебор всех возможных вариантов с i-ой итерацией которая даст матрицу без нулей с максимальным значением при сложении всех значений в матрице. Правило сложение при трех значений в j-ом элементе дает (a+b+c)/3 = итог с округлением вниз то есть (5+1+2)/3 = 2 Правило сложения при двух значениях в j-ом элементе дает (a+b)/2 = итог с округлением вниз то есть (5+4)/2 = 4 или (5+2)/2=3 При условии если 2 0 0 3 + 1 1 0 0 + 0 0 1 0 = j1 = 1, а j2 или j3 или j4 = (3+1+1)/3 =1
0
|
|
|
Модератор
3132 / 2279 / 469
Регистрация: 26.03.2015
Сообщений: 8,870
|
||
| 14.03.2016, 16:37 | ||
|
Добавлено через 6 минут Вы можете аккуратно написать что дано что надо найти правила для всех операций
0
|
||
|
1 / 1 / 0
Регистрация: 31.07.2009
Сообщений: 40
|
|
| 14.03.2016, 17:21 [ТС] | |
|
Дано:
n-ое кол-во матриц int[12] где i-ый элемент матрицы имеет значение от 0 до 8 Для получения новой матрицы-P нужно использовать 3 из существующих. Останется N-3+1 (28 матриц - 3 матрицы + 1 матрица), но проблема в том, что полученная матрица может не подойти при сложении на n-ом шаге. В идеале при 9 имеющих матрицах нам потребуется всего 3 шага 9-3+1=7-3+1=5-3+1=3-3+1=1 Итоговая матрица. Правило сложения матриц элементов матрицы: 0 + 0 + 0 = 0 1 + 1 + 1 = 2 1 + 2 + 2 = 2 2 + 2 + 2 = 3 и тд. Матрица условна разделена на 3 строки по 4 элемента 1 0 0 0 + 0 0 0 1 + 0 1 0 0 = Получим случайный элемент элемент со значением 2 (1+1+1=2) 2 1 0 0 + 2 1 0 0 + 0 0 0 0 = 2 1 0 0 2 1 1 1 + 2 1 1 1 + 0 0 0 0 = 2 1 1 1
0
|
|
|
Модератор
3132 / 2279 / 469
Регистрация: 26.03.2015
Сообщений: 8,870
|
|||
| 14.03.2016, 18:41 | |||
|
1. Почему 1 + 1 + 1 = 2? 2. Если результат сложения зависит от случайности, то как мы можем гарантировать лучший результат (вдруг нам не повезёт)? 3. Остальные 3 элемента? 0 + 0 + 1 = ? 1 + 1 + 7 = ? 8 + 8 + 8 = ? и так далее...
0
|
|||
|
1 / 1 / 0
Регистрация: 31.07.2009
Сообщений: 40
|
|
| 15.03.2016, 09:05 [ТС] | |
|
Вопрос не в том как сложить 3 матрицы, а уйти от миллиардов вариантов и не использовать исключения). Нужно найти кратчайший путь получения максимально возможной матрицы в идеале
8 8 8 8 8 8 8 8 8 8 8 8 0 + 0 + 1 = (1/3 с округлением в меньшую сторону)+1 1 + 1 + 7 = (9/3 с округлением в меньшую сторону)+1 8 + 8 + 8 = (24/3 с округлением в меньшую сторону)+1 1. Почему 1 + 1 + 1 = 2? (3/3)+1 2. Если результат сложения зависит от случайности, то как мы можем гарантировать лучший результат (вдруг нам не повезёт)? Случайность только в выборе элемента строки. 3. Остальные 3 элемента? Согласен, что "случайные" матрицы исключаются из подбора.
0
|
|
|
Модератор
3132 / 2279 / 469
Регистрация: 26.03.2015
Сообщений: 8,870
|
|||
| 15.03.2016, 09:17 | |||
|
При каких условиях результат сложения становится случайным? Как выглядит "случайный результат" (Вы приводите значение только для одного элемента)?
А что делать, если останется 2 матрицы?
0
|
|||
|
1 / 1 / 0
Регистрация: 31.07.2009
Сообщений: 40
|
||||
| 15.03.2016, 10:10 [ТС] | ||||
|
1 0 1 0 + 0 1 1 0 + 0 0 1 1 = x1 = 1 + 0 + 0 = нет пары x2 = 0 + 1 + 0 = нет пары x3 = 1 + 1 + 1 = (3/3)+1=2 x4 = 0 + 0 + 1 = нет пары 3 элемента в строке матрицы без пары дают случайный элемент "2 уровня" (1+1+1=(3/3)+1=2) либо в x1 или в x2 или в x4 Какие варианты возможны 1+2+3=123 1+2+4=124 1+2+5=125 1+2+6=126 1+3+4=134 1+3+5=135 1+3+6=136 1+4+5=145 1+4+6=146 1+5+6=156 эти варианты возможны на первом шаге Каждый шаг образует дерево решений, то есть В первом ответвлении принимаются уже матрицы под номерами 123 4 5 6 Во втором ответвлении принимаются уже матрицы под номерами 124 3 5 6 В третьем ответвлении принимаются уже матрицы под номерами 125 3 4 6 и так далее Второй шаг рождает еще больше вариантов, что и является проблемой. Если остаются в каждом ответвлении менее 3 матриц, то ветвь считается завершенная и на выходе получаем 1 или 2 матрицы Мне этот алгоритм не нравится по простой причине, что он рождает оооочень много вариантов и при кол-ве больше 100 матриц, кол-во ветвей с решениями достигает невероятных размеров
0
|
||||
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
| 15.03.2016, 12:06 | |
|
Для чего это вообще? Изначальная задача что, откуда матрицы. Или это просто задачка для решать?
0
|
|
|
1 / 1 / 0
Регистрация: 31.07.2009
Сообщений: 40
|
||
| 15.03.2016, 12:24 [ТС] | ||
![]() Заинтересовался подбором чисто из любопытства, каким еще способом можно решить данную задачу. Решение в лоб дал плачевный результат. При 200-300 прошивок получается около 500 тысяч результатов на первом шаге при исключении достаточного кол-ва брака по разным параметрам.
0
|
||
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
||
| 15.03.2016, 13:17 | ||
|
0
|
||
|
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,038
|
||
| 15.03.2016, 14:03 | ||
|
0
|
||
|
1 / 1 / 0
Регистрация: 31.07.2009
Сообщений: 40
|
|
| 15.03.2016, 14:20 [ТС] | |
|
https://www.youtube.com/watch?v=J-sE33ZEwjA ссылка на видео моей программы которая перебирает все возможные варианты в пределах одного шага.
https://vk.com/prosh_gm группа в вк где описана программа и дана ссылка на нее То что не случайную величину а случайный элемент в строке точно, проверено эмпирическим путем. Боюсь что за эти ссылки я получу по шапке, но реально хочется понять реальность прогнозирования результата отталкиваясь не от имеющих возможностей. Данное изречение подвело меня к мысли идти не сначала а от конца. То есть допустим нужно получить "Идеальную" прошивку. Берем разбираем её на все возможные варианты и ищем составляющие для этого. Если не находим то перебираем другие варианты. Возможно вариантов будет меньше. Покажу пример для того чтобы получить прошивку 8 8 8 8 8 8 8 8 8 8 8 8 нам потребуется 3 прошивки 7 7 7 7 7 7 7 7 7 7 7 7 если не находим из имеющих то пытаемся собрать прошивку со всеми элементами 7 уровня и так далее...
0
|
|
|
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,038
|
|||
| 15.03.2016, 15:58 | |||
|
Думаю, вам нужно использовать алгоритмы типа А* - нужно производить оценку близости матриц к идеальной и пытаться скрещивать в первую очередь те, которые наиболее близки к идеалу либо дадут наибольший скачок. У вас уже есть критерии - количество бонусов и уровень. Добавлено через 8 минут К слову, судя по описанию матриц на оф сайте, у ячейки всего 5 уровней
0
|
|||
|
Модератор
3132 / 2279 / 469
Регистрация: 26.03.2015
Сообщений: 8,870
|
|
| 15.03.2016, 16:37 | |
|
При сложении (1+2+3)/3 наши "потери" (остатки от деления на 3) могут быть 0, 1/3 и 2/3. По всей матрице наши потери могут быть от 0 до 8. Можно попробовать на каждом шаге выбирать тройку матриц с минимальными потерями при сложении.
1
|
|
| 15.03.2016, 16:37 | |
|
Помогаю со студенческими работами здесь
18
Нахождение наилучшего алгоритма
Поиск в таблице наилучшего варианта, подподающего под критерии
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|