Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2018, 00:52   #1
stanislav55
Пользователь
 
Регистрация: 04.04.2018
Сообщений: 16
По умолчанию Сколько вариантов окраски

Имеем 126 квадратов. Их надо раскрасить в 4 цвета (красный,синий, жёлтый, зеленый) В один цвет нельзя окрашивать более 41 квадрата где бы они не стояли. Сколько вариантов окраски.

Последний раз редактировалось stanislav55; 04.04.2018 в 01:11.
stanislav55 вне форума Ответить с цитированием
Старый 04.04.2018, 07:41   #2
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,814
По умолчанию

комбинаторика...эх...
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 04.04.2018, 09:12   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Там же бешенные числа )) Можно попытаться динамическим программированием (+ длинная арифметика, очень длинная).
V(n) - число вариантов для n квадратов
V(1) = 4

Для n<41: V(n+1) = V(n)*4

Для 41<=n<82: V(n+1) = V(n)*4 - (C(41,n)*3^(n-41))*4
где C(41,n) = n!/41!/(n-41)! (может и ошибся, идея - вычесть те варианты где перевалило за 41 у одного из цветов)

Для 82<=n<123 уже два цвета может быть по 41, для 123<=n - 3 цвета, лень формулу выводить да и смысла не вижу ))
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 04.04.2018 в 09:17.
Аватар вне форума Ответить с цитированием
Старый 04.04.2018, 09:46   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

согласен.
в "лоб" перебором не решишь.
если порядок расположения имеет значение, тогда общее число вариантов раскраски 4^126 ~ 7.8E75 (75значное число)
поэтому перебирать все варианты - это не выход. нужно думать над алгоритмом/формулой.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 04.04.2018, 10:12   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

С другой стороны там всего 10660 решений целочисленного уравнения:
a+b+c+d=126 где 3<=a,b,c,d<=41
для каждого решения посчитать число вариантов, а это реально, и сложить. И та же длинная арифметика
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 04.04.2018 в 10:18.
Аватар вне форума Ответить с цитированием
Старый 04.04.2018, 22:50   #6
stanislav55
Пользователь
 
Регистрация: 04.04.2018
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
согласен.
в "лоб" перебором не решишь.
если порядок расположения имеет значение, тогда общее число вариантов раскраски 4^126 ~ 7.8E75 (75значное число)
поэтому перебирать все варианты - это не выход. нужно думать над алгоритмом/формулой.
Квадраты расположены на одной линии.Значит имет.
stanislav55 вне форума Ответить с цитированием
Старый 04.04.2018, 22:53   #7
stanislav55
Пользователь
 
Регистрация: 04.04.2018
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Там же бешенные числа )) Можно попытаться динамическим программированием (+ длинная арифметика, очень длинная).
V(n) - число вариантов для n квадратов
V(1) = 4

Для n<41: V(n+1) = V(n)*4

Для 41<=n<82: V(n+1) = V(n)*4 - (C(41,n)*3^(n-41))*4
где C(41,n) = n!/41!/(n-41)! (может и ошибся, идея - вычесть те варианты где перевалило за 41 у одного из цветов)

Для 82<=n<123 уже два цвета может быть по 41, для 123<=n - 3 цвета, stanislav55 ))
лень формулу выводить да и смысла не вижу


Что надо чтобы было не лень
stanislav55 вне форума Ответить с цитированием
Старый 05.04.2018, 23:59   #8
stanislav55
Пользователь
 
Регистрация: 04.04.2018
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
согласен.
в "лоб" перебором не решишь.
если порядок расположения имеет значение, тогда общее число вариантов раскраски 4^126 ~ 7.8E75 (75значное число)
поэтому перебирать все варианты - это не выход. нужно думать над алгоритмом/формулой.
свыше перечисленами условиями может быть число вариантов меньше чем 4^125

Последний раз редактировалось stanislav55; 06.04.2018 в 00:21.
stanislav55 вне форума Ответить с цитированием
Старый 06.04.2018, 17:57   #9
Dekay
Пользователь
 
Регистрация: 21.06.2016
Сообщений: 65
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
a+b+c+d=126 где 3<=a,b,c,d<=41
Ога.
а потом 126!/a!/b!/c!/d!
Интересно, а есть ли что-то получше?
Я дык сходу не знаю
Dekay вне форума Ответить с цитированием
Старый 06.04.2018, 18:38   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
а потом 126!/a!/b!/c!/d!
Потом чуть не так, например на 4! еще умножить для разных a,b,c,d. Для совпадающих подумать немножко еще нужно. Но это же не перебор, а расчет просто. Динамическим программированием может и быстрей, но там еще формулы нужно придумать. И тоже считать большие факториалы ))
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать сколько сводных таблиц и сколько срезов на рабочем листе? RISagitov Microsoft Office Excel 0 31.10.2015 19:30
Маленька проблема окраски Dimka Wumok Microsoft Office Excel 16 28.10.2012 14:10
Скорректировать код окраски повторяющих значений в листе.. Slavatron1984 Microsoft Office Excel 2 19.12.2011 17:06
Сколько стоит такая программка? И сколько по времени её сделать? Палыч I Фриланс 8 10.09.2010 16:23
Помогите оценить, сколько может стоить проект. Его покупают - сколько взять? grenles Свободное общение 4 16.07.2008 09:38