powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как узнать индекс сочетания (комбинаторика), зная выбранное подмножество?
2 сообщений из 2, страница 1 из 1
Как узнать индекс сочетания (комбинаторика), зная выбранное подмножество?
    #35897402
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Существует ли какая-нибудь общая формула, чтобы узнать номер по порядку сочетания из всех возможных, зная, какие элементы множества использованы при построении данного сочетания, если построение идет упорядоченно от меньшего к большему? (ниже приведен код упорядоченного перебора всех сочетаний 5 элементов из 20 возможных - 20!/(5!*(20-5)!)=15504 шт.)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
i= 0 ;
for(a= 0 ;a< 20 ;++a){
	for(b=a+ 1 ;b< 20 ;++b){
		for(c=b+ 1 ;c< 20 ;++c){
			for(d=c+ 1 ;d< 20 ;++d){
				for(e=d+ 1 ;e< 20 ;++e){
					permutations[++i]={a,b,c,d,e};
				}
			}
		}
	}
}

Как, зная a, b, c, d и e для некоторого конкретного сочетания узнать, какое оно по счету (i), не делая перебор, как на примере выше?

Т. е., например, зная что a=0, b=1, c=2, d=3, e=4 узнать, что i=1, или зная, что a=15, b=16, c=17, d=18, e=19, узнать, что i=15504... и так для любого случая.
...
Рейтинг: 0 / 0
Как узнать индекс сочетания (комбинаторика), зная выбранное подмножество?
    #35897521
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сам нашел ответ.
i=C(e,5)+C(d,4)+C(c,3)+C(b,2)+C(a,1), где C(n,r) - количество сочетаний для подмножества r элементов множества n элементов
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как узнать индекс сочетания (комбинаторика), зная выбранное подмножество?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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