2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему
 
 Комбинаторика, помогите проверить, пожалуйста
Сообщение08.10.2023, 18:37 


02/01/23
76
Имею список цифр, к примеру 0, 0, 1, 1, 2, 3, 4, 4.
Задача - установить, сколько из них можно составить чисел (не начинающихся с нуля). Все цифры должны быть использованы.
Логика:
1. Пусть $n$ - длина списка. Тогда, без учета того, что число не может начинаться с нуля, можно использовать формулу:
$\dfrac{n!}{m_0!m_1!\dots m_9!}$
где $m_i$ - кол-во вхождений цифры $i$ в список.
2. Если в списке нет нулей, ответ получен. Если в списке есть нули,
из результата п. 1 вычесть значение выражения из п. 1, но для списка без одного из нулей. Например, список 0, 0, 1, 1, 2, 3, 4, 4 превращается в список 0, 1, 1, 2, 3, 4, 4.
Для данного примера:
$\dfrac{8!}{2!2!1!1!2!0!0!0!0!0!}-\dfrac{7!}{1!2!1!1!2!0!0!0!0!0!}=3780$
Сюда же прилагаю свой корявенький код на Python, работающий перебором. Ответ также 3780.
Код:
from itertools import permutations

input_list = [0, 0, 1, 1, 2, 3, 4, 4]
def l2n(l):
    return int("".join(map(str, l)))

all_permutations = set(filter(lambda x: x >= 10 ** 7, map(l2n, permutations(input_list, 8))))

print(len(all_permutations))

Спасибо

 Профиль  
                  
 
 Re: Комбинаторика, помогите проверить, пожалуйста
Сообщение08.10.2023, 21:43 


07/08/23
468
Вроде всё верно.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group