Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Программирование Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 5 6 7 [8] 9   вперед  Ctrl      все
 Re: Поиск любых сочетаний из К чисел  [new]
Barlone
Member

Откуда:
Сообщений: 1016
Gennadiy Usov
Aleksandr Sharahov
Gennadiy Usov,

допустим, у меня есть магическая функция, которая может найти все нужные вам сочетания.

У вас есть алгоритм, который будет ее использовать?
Конечно есть: 21690219 или 21693196.

Для доски 997х997 имеется 2^249 сочетаний.
Возьмите доску поменьше, убедитесь в том, что вы никогда не сможете дождаться перебора даже 2^64 сочетаний. Зачем вам алгоритм, который требует триллионы лет для завершения?
24 ноя 18, 20:24    [21743845]     Ответить | Цитировать Сообщить модератору
 Re: Поиск любых сочетаний из К чисел  [new]
Gennadiy Usov
Member

Откуда:
Сообщений: 945
Barlone
Gennadiy Usov
Конечно есть: 21690219 или 21693196.

Для доски 997х997 имеется 2^249 сочетаний.
Возьмите доску поменьше, убедитесь в том, что вы никогда не сможете дождаться перебора даже 2^64 сочетаний. Зачем вам алгоритм, который требует триллионы лет для завершения?
Есть формула, а есть реализация этой формулы на компьютере.

Это две разные вещи!
24 ноя 18, 21:21    [21743869]     Ответить | Цитировать Сообщить модератору
 Re: Поиск любых сочетаний из К чисел  [new]
Gennadiy Usov
Member

Откуда:
Сообщений: 945
Ранее рассматривались "линейные" сочетания для одномерного массива чисел.

А если рассмотреть сочетания на плоскости для двумерного массива чисел.

То есть, необходимо найти сочетания для чисел из массива N на М.
Каждое число из массива чисел может принимать значение либо 1, либо 2.

Конечно, можно составить ещё один массив из NxM чисел, а затем провести соответствие между этим массивом и масcивом P[N][M].
Однако интереснее иметь сочетания для двумерного массива.

Тогда имеем код для варианта сочетаний двумерного массива чисел:
						
function main {						
	var N1=13;					
	var N2=13;					
	var P = new Array(N1+2);					
	for (var i = 0; i < =N1 + 1; i++) { MR5[i] = new Array(N2+1);}					
	for(var i = 1; i <= N1; i++) {					
		for(var j = 1; j <= N2; j++) {				
			P[i][j]=1;			
		}				
	}					
	var M=2;					
	while(SOCHETNxM(N1, N2, P, M)) {					
		for(var i = 1; i <= K; i++) print(P[i]);				
	}					
}						
function SOCHETNxM(K1, K2, P, M)  {						
	for(i1 = 1; i1 <=K1; i1++) {					
		for(i2 = 1; i2 <=K2; i2++) {				
			if (P[i1] [i2] >0) {			
				P[i1][i2]=P[i1][i2]+1;		
				if (P[i1][i2] != (M + 1)) break; 		
				P[i1] [i2]= 1;		
			}			
		}				
	}					
	return i1 <= K1;					
}	
Аналогично можно будет определять сочетания для R-мерного массива чисел.

И аналогично можно будет в этих массивах чисел искать сочетания не для всех чисел.
25 ноя 18, 07:06    [21743999]     Ответить | Цитировать Сообщить модератору
 Re: Поиск любых сочетаний из К чисел  [new]
Gennadiy Usov
Member

Откуда:
Сообщений: 945
Есть ещё интересная задача.

Необходимо найти сочетания N чисел, которые принимают значения либо 1, либо 2.
При этом, количество "двоек" в сочетаниях не должно превышать некоторого предельного значения PR.

Попробуем составить код для данной задачи:
							
function main {							
	var N1=13;						
	var P = new Array(N1+2);						
	for(var i = 1; i <= N1; i++) P[i]=1;						
	P[0]=0;						
							
	var PR=(N-1)/4;						
							
	var M1=2;						
	while(SOCHET3(N1, P, M1, PR)) {						
		for(var i = 1; i <= K; i++) print(P[i]);					
	}						
}							
							
function SOCHETM(K, P, M, PR)  {							
	for(i1 = 1; i1 <=K; i1++) {						
		if (P[i1] >0) {					
			P[i1]=P[i1]+1;				
			P[0]=P[0]+1;				
			if (P[i1] != (M + 1) || P[0] <=PR) break; 				// Выход из цикла если P[i1] != M+1
			if (P[i1] == (M + 1)) {				
				P[0]=P[0]-1;			
				P[i1] = 1;			
			}				
		}					
	}						
	return i1 <= K;						
}	
26 ноя 18, 06:38    [21744442]     Ответить | Цитировать Сообщить модератору
 Re: Поиск любых сочетаний из К чисел  [new]
Dima T
Member

Откуда:
Сообщений: 13032
В другом форуме ту же проблему обсуждают.
Дали ссылку на алгоритм https://habr.com/post/248493/

Дублирую сюда. Может чем поможет.
26 ноя 18, 13:49    [21744930]     Ответить | Цитировать Сообщить модератору
 Re: Поиск любых сочетаний из К чисел  [new]
Gennadiy Usov
Member

Откуда:
Сообщений: 945
Dima T
В другом форуме ту же проблему обсуждают.
Дали ссылку на алгоритм https://habr.com/post/248493/
Дублирую сюда. Может чем поможет.
Спасибо за информацию!

Но, по-моему, несколько сложно.
Ведь у нас очень неплохо получилось: 21699386 или 21690515.

Меня сейчас больше интересуют усложнения сочетаний: сочетания с ограничениями, сочетания чисел, принимающих М значений, сочетания на плоскости.
Может быть ещё что-то появится.
26 ноя 18, 16:56    [21745176]     Ответить | Цитировать Сообщить модератору
 Re: Поиск любых сочетаний из К чисел  [new]
Aleksandr Sharahov
Member

Откуда: Москва
Сообщений: 1697
Dima T
В другом форуме ту же проблему обсуждают.
Дали ссылку на алгоритм https://habr.com/post/248493/

Дублирую сюда. Может чем поможет.


Нерекурсивный алгоритм по той ссылке, скорее всего, по всем параметрам проиграет рекурсивному ))
26 ноя 18, 18:26    [21745291]     Ответить | Цитировать Сообщить модератору
 Re: Поиск любых сочетаний из К чисел  [new]
Dima T
Member

Откуда:
Сообщений: 13032
Aleksandr Sharahov
Dima T
В другом форуме ту же проблему обсуждают.
Дали ссылку на алгоритм https://habr.com/post/248493/

Дублирую сюда. Может чем поможет.


Нерекурсивный алгоритм по той ссылке, скорее всего, по всем параметрам проиграет рекурсивному ))

Возможно. Алгоритм интересный, но упирается в изъятие элементов массива, что тормоз. Может я его не допонял, читаю исходник, пытаюсь в синтаксисе VB разобраться. Наверно лучше там упомянутую книгу качнуть.
26 ноя 18, 19:05    [21745331]     Ответить | Цитировать Сообщить модератору
 Re: Поиск любых сочетаний из К чисел  [new]
Dima T
Member

Откуда:
Сообщений: 13032
Aleksandr Sharahov
Нерекурсивный алгоритм по той ссылке, скорее всего, по всем параметрам проиграет рекурсивному ))

У меня еще есть идея нерекурсивного алгоритма с деревом. Основано на идее что все комбинации по N элементов можно получить имея все комбинации по K и M, где K+M=N.
Например для N=15 берем 7+8, где 7 = 3+4, 8 = 4+4, 3 = 2+1, 4 = 2+2.
26 ноя 18, 19:13    [21745339]     Ответить | Цитировать Сообщить модератору
 Re: Поиск любых сочетаний из К чисел  [new]
Gennadiy Usov
Member

Откуда:
Сообщений: 945
Dima T
Aleksandr Sharahov
Нерекурсивный алгоритм по той ссылке, скорее всего, по всем параметрам проиграет рекурсивному ))

У меня еще есть идея нерекурсивного алгоритма с деревом. Основано на идее что все комбинации по N элементов можно получить имея все комбинации по K и M, где K+M=N.
Например для N=15 берем 7+8, где 7 = 3+4, 8 = 4+4, 3 = 2+1, 4 = 2+2.
Что-то похожее на разделение в 21702893?
26 ноя 18, 19:32    [21745363]     Ответить | Цитировать Сообщить модератору
 Re: Поиск любых сочетаний из К чисел  [new]
Aleksandr Sharahov
Member

Откуда: Москва
Сообщений: 1697
Dima T
Aleksandr Sharahov
Нерекурсивный алгоритм по той ссылке, скорее всего, по всем параметрам проиграет рекурсивному ))

У меня еще есть идея нерекурсивного алгоритма с деревом. Основано на идее что все комбинации по N элементов можно получить имея все комбинации по K и M, где K+M=N.
Например для N=15 берем 7+8, где 7 = 3+4, 8 = 4+4, 3 = 2+1, 4 = 2+2.


тогда будет проблемой, как подменять элементы в сгенерированных раскладах
26 ноя 18, 20:35    [21745417]     Ответить | Цитировать Сообщить модератору
 Re: Поиск любых сочетаний из К чисел  [new]
Dima T
Member

Откуда:
Сообщений: 13032
Aleksandr Sharahov
Dima T
пропущено...

У меня еще есть идея нерекурсивного алгоритма с деревом. Основано на идее что все комбинации по N элементов можно получить имея все комбинации по K и M, где K+M=N.
Например для N=15 берем 7+8, где 7 = 3+4, 8 = 4+4, 3 = 2+1, 4 = 2+2.


тогда будет проблемой, как подменять элементы в сгенерированных раскладах


Сделал заготовку, лучше ее показать чтобы понятнее было, а то потом после тюнинга код тяжело читать будет.
Пример кода слияния двух последовательностей комбинаций для N = 2: 01 10
// Последовательности для слияния
PermutationBy2 first = new PermutationBy2(), second = new PermutationBy2();
int[] first_arr = new int[2], second_arr = new int[2];
// Порядок слияния
var union = new Union(first_arr.Length, second_arr.Length);
// Массив под очередное значение результата
var result = new int[first_arr.Length + second_arr.Length];

// Перебор элементов первой последовательности
first.Reset();
while(first.Next(ref first_arr)) { 
	// Перебор всех элементов второй последоватильности
	second.Reset();
	while(second.Next(ref second_arr)) { 
		// Перебор всех порядков слияния
		union.Reset();
		while(union.Next()) {
			int first_pos = 0, second_pos = 0;
			// Слияние согласно union
			for(int i = 0; i < result.Length; i++) {
				if(union.IsFirst(i)) {
					result[i] = first_arr[first_pos];
					first_pos++;
				} else {
					result[i] = second_arr[second_pos] + first_arr.Length;
					second_pos++;
				}
			}
			result.Print(); // Вывод строки результата
		}
	}
}

+ код классов
	// Последовательность перестановок по 2
	sealed class PermutationBy2{
		static int[,] data = {{0, 1}, {1, 0}};
		int pos;

		// Инициализация 
		public void Reset() {
			pos = 0;
		}

		// Следующая комбинация в массив arr. false если все кончились
		public bool Next(ref Int32[] arr) {
			if(pos > 1) return false;
			arr[0] = data[pos, 0];
			arr[1] = data[pos, 1];
			pos++;
			return true;
		}
	}



	// Последовательность порядков слияния. Комбинации типа 0011, 0101, 0110, 1001, 1010, 1100
	sealed class Union {
		bool[] pos; // текущий порядок
		int first; // Размер первой последовательности
		bool need_init;

		public Union(int first, int second) {
			pos = new bool[first + second];
			this.first = first;
		}

		// Сброс в начальное состояние
		public void Reset() {
			need_init = true;
		}

		// Следующая комбинация. false если ее нет
		public bool Next() {
			if(need_init) {
				for(int i = 0; i < pos.Length; i++) pos[i] = (i < first);
				need_init = false;
				return true;
			}

			bool stop = true;
			int pos1 = -1, cnt = -1;
			for(int i = 0; i < pos.Length; i++) {
				if(pos[i]) {
					if(pos1 == -1) pos1 = i;
					cnt++;
				} else {
					if(pos1 != -1) {
						pos[i] = true;
						for(int j = 0; j < i; j++) pos[j] = (j < cnt);
						stop = false;
						break;
					}
				}
			}
			return !stop;
		}

		// Проверка что элемент n относится к первой последовательности
		public bool IsFirst(int n) {
			return pos[n];
		}

		public void Print() {
			pos.Print();
		}
	}

+ Результат
0 1 2 3
0 2 1 3
2 0 1 3
0 2 3 1
2 0 3 1
2 3 0 1
0 1 3 2
0 3 1 2
3 0 1 2
0 3 2 1
3 0 2 1
3 2 0 1
1 0 2 3
1 2 0 3
2 1 0 3
1 2 3 0
2 1 3 0
2 3 1 0
1 0 3 2
1 3 0 2
3 1 0 2
1 3 2 0
3 1 2 0
3 2 1 0

Оптимизации пока никакой не делал, чтоб читаемость не рушить. Как минимум просится предварительный перегон в массивы second и union.
Единственный минус что массив с очередным результатом каждый раз полностью заполняется, но это относительно небольшой тормоз.

Суть задумки что внутри каждого объекта PermutationBy2 может быть два других объекта, т.е. дерево.
В итоге будет класс Permutation(int N) с генератором последовательности комбинаций N по N.
Примерно так
Permutation p = new Permutation(N);
int[] arr = new int[N];
while(p.Next(ref arr)) ... обработка arr
28 ноя 18, 10:32    [21746929]     Ответить | Цитировать Сообщить модератору
 Re: Поиск любых сочетаний из К чисел  [new]
Aleksandr Sharahov
Member

Откуда: Москва
Сообщений: 1697
Dima T,

вопрос в том, будет ли процедура Union.Next достаточно быстрой, т.к. все упирается в ее скорость
28 ноя 18, 11:55    [21747079]     Ответить | Цитировать Сообщить модератору
 Re: Поиск любых сочетаний из К чисел  [new]
Dima T
Member

Откуда:
Сообщений: 13032
Aleksandr Sharahov
Dima T,

вопрос в том, будет ли процедура Union.Next достаточно быстрой, т.к. все упирается в ее скорость

Если внутри Union все загнать в массив, то будет быстро.

В общем случае для Union(K, M) потребуется (K+M)! / (K!*M!) массивов bool[K+M]
Например для Union(10,10) потребуется массив 184756 массивов bool[20].

Union(K, M) это все варианты разместить K единиц в K+M элементах.
Для случая (2,2) получается 6:
0011, 0101, 0110, 1001, 1010, 1100

И самое главное что я тут вижу - этот алгоритм параллелится. Просто разбить Union на части.
28 ноя 18, 13:54    [21747331]     Ответить | Цитировать Сообщить модератору
 Re: Поиск любых сочетаний из К чисел  [new]
Aleksandr Sharahov
Member

Откуда: Москва
Сообщений: 1697
Dima T,

Ну значит будет с чем сравнить: в лучших алгоритмах генерации перестановок
на переход к следующей тоже требуется не слишком много тактов процессора.

Проблемы запараллелить генерацию перестановок, в принципе, нет.
Это можно провернуть почти с любым алгоритмом.
28 ноя 18, 14:50    [21747441]     Ответить | Цитировать Сообщить модератору
 Re: Поиск любых сочетаний из К чисел  [new]
Gennadiy Usov
Member

Откуда:
Сообщений: 945
Dima T
Для случая (2,2) получается 6:
0011, 0101, 0110, 1001, 1010, 1100
А как же следующие перестановки:
0001, 0100, 0010, 0001, 1000, 1101, 
и т.д., где 1 или 3 единички?
28 ноя 18, 17:17    [21747680]     Ответить | Цитировать Сообщить модератору
 Re: Поиск любых сочетаний из К чисел  [new]
Gennadiy Usov
Member

Откуда:
Сообщений: 945
Dima T
Aleksandr Sharahov
Нерекурсивный алгоритм по той ссылке, скорее всего, по всем параметрам проиграет рекурсивному ))

У меня еще есть идея нерекурсивного алгоритма с деревом. Основано на идее что все комбинации по N элементов можно получить имея все комбинации по K и M, где K+M=N.
Например для N=15 берем 7+8, где 7 = 3+4, 8 = 4+4, 3 = 2+1, 4 = 2+2.
В сообщении 21704344 рассматривался вопрос

"Сочетания из 200 чисел можно "собрать" из "суммы" сочетаний:
20 чисел + 30 чисел + 23 числа + 27 чисел + 17 чисел + 33 числа + 19 чисел + 31 число."

Далее можно ещё делить, пока не придем к наименьшим составляющим:

Например: 33= 2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+1, или формируется дерево, где элементы расположены попарно и постепенно уменьшаются.
28 ноя 18, 17:34    [21747689]     Ответить | Цитировать Сообщить модератору
 Re: Поиск любых сочетаний из К чисел  [new]
Dima T
Member

Откуда:
Сообщений: 13032
Gennadiy Usov
Dima T
Для случая (2,2) получается 6:
0011, 0101, 0110, 1001, 1010, 1100
А как же следующие перестановки:
0001, 0100, 0010, 0001, 1000, 1101, 
и т.д., где 1 или 3 единички?

Это не все решение, а его часть. Надо склеить два массива в данном примере по два элемента. На место 0 подставляем из первого, на место 1 - из второго. Если будет три 0 или 1, то получим ошибку выхода за пределы массива, т.к. в каждом по два элемента.
28 ноя 18, 18:40    [21747790]     Ответить | Цитировать Сообщить модератору
 Re: Поиск любых сочетаний из К чисел  [new]
Dima T
Member

Откуда:
Сообщений: 13032
Gennadiy Usov
Dima T
пропущено...

У меня еще есть идея нерекурсивного алгоритма с деревом. Основано на идее что все комбинации по N элементов можно получить имея все комбинации по K и M, где K+M=N.
Например для N=15 берем 7+8, где 7 = 3+4, 8 = 4+4, 3 = 2+1, 4 = 2+2.
В сообщении 21704344 рассматривался вопрос

"Сочетания из 200 чисел можно "собрать" из "суммы" сочетаний:
20 чисел + 30 чисел + 23 числа + 27 чисел + 17 чисел + 33 числа + 19 чисел + 31 число."

Далее можно ещё делить, пока не придем к наименьшим составляющим:

Например: 33= 2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+1, или формируется дерево, где элементы расположены попарно и постепенно уменьшаются.

Извини, но тут я просто тебя не понимаю, я не понимаю как работает твой алгоритм. Мой пост был по теме топика "сочетания из К чисел".
+ Я под этим понимаю что например так выглядит сочетание из 4-х по 4
0 1 2 3
0 2 1 3
2 0 1 3
0 2 3 1
2 0 3 1
2 3 0 1
0 1 3 2
0 3 1 2
3 0 1 2
0 3 2 1
3 0 2 1
3 2 0 1
1 0 2 3
1 2 0 3
2 1 0 3
1 2 3 0
2 1 3 0
2 3 1 0
1 0 3 2
1 3 0 2
3 1 0 2
1 3 2 0
3 1 2 0
3 2 1 0

У тебя же как-то по-другому, и я не смог понять как и почему.
28 ноя 18, 18:47    [21747801]     Ответить | Цитировать Сообщить модератору
 Re: Поиск любых сочетаний из К чисел  [new]
Gennadiy Usov
Member

Откуда:
Сообщений: 945
Dima T
Gennadiy Usov
А как же следующие перестановки:
0001, 0100, 0010, 0001, 1000, 1101, 
и т.д., где 1 или 3 единички?

Это не все решение, а его часть. Надо склеить два массива в данном примере по два элемента. На место 0 подставляем из первого, на место 1 - из второго. Если будет три 0 или 1, то получим ошибку выхода за пределы массива, т.к. в каждом по два элемента.
Так и у меня склейка: склеиваю несколько массивов, которые в сумме дают длину N.

При этом существует правило:
- к каждому сочетанию первого массива "приклеиваются" все сочетания второго массива;
- к каждому сочетанию первого и второго массивов "приклеиваются" все сочетания третьего массива;
- к каждому сочетанию первого, второго и треьего массивов "приклеиваются" все сочетания четвертого массива;
и т.д.
Dima T
Gennadiy Usov
В сообщении 21704344 рассматривался вопрос
"Сочетания из 200 чисел можно "собрать" из "суммы" сочетаний:
20 чисел + 30 чисел + 23 числа + 27 чисел + 17 чисел + 33 числа + 19 чисел + 31 число."
Далее можно ещё делить, пока не придем к наименьшим составляющим:
Например: 33= 2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+1, или формируется дерево, где элементы расположены попарно и постепенно уменьшаются.
Извини, но тут я просто тебя не понимаю, я не понимаю как работает твой алгоритм. Мой пост был по теме топика "сочетания из К чисел".
+ Я под этим понимаю что например так выглядит сочетание из 4-х по 4
0 1 2 3
0 2 1 3
2 0 1 3
0 2 3 1
2 0 3 1
2 3 0 1
0 1 3 2
0 3 1 2
3 0 1 2
0 3 2 1
3 0 2 1
3 2 0 1
1 0 2 3
1 2 0 3
2 1 0 3
1 2 3 0
2 1 3 0
2 3 1 0
1 0 3 2
1 3 0 2
3 1 0 2
1 3 2 0
3 1 2 0
3 2 1 0
У тебя же как-то по-другому, и я не смог понять как и почему.
Это не мой алгоритм, а наш совместный:
21690391 или 21699386.
+ Я так понимаю сочетания из 4-х по 4
0	0	0	0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1
И чем отличается у Вас первое и последнее сочетания по смыслу?
28 ноя 18, 19:11    [21747819]     Ответить | Цитировать Сообщить модератору
 Re: Поиск любых сочетаний из К чисел  [new]
Dima T
Member

Откуда:
Сообщений: 13032
Gennadiy Usov
Это не мой алгоритм, а наш совместный:
21690391 или 21699386.

Нет. Там я не вникал в алгоритм. Я просто указал как правильнее делать его части.

Gennadiy Usov
+ Я так понимаю сочетания из 4-х по 4
0	0	0	0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1
И чем отличается у Вас первое и последнее сочетания по смыслу?

Поздравляю, ты изобрел двоичную систему счисления. Проблема только в том что ее 100 лет назад изобрели.

Умножь первое число на 8, второе на 4, третье на 2, четвертое как есть. Сложи что получилось и получишь 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15. Это типа перевод из двоичной в десятичную.

Я не понимаю зачем тебе надо изобретать этот древний велосипед?
Нет, сам велосипед я прекрасно понимаю, но не понимаю что дальше ты хочешь с ним делать?

PS Можно на "ты"
28 ноя 18, 20:27    [21747883]     Ответить | Цитировать Сообщить модератору
 Re: Поиск любых сочетаний из К чисел  [new]
Dima T
Member

Откуда:
Сообщений: 13032
Если ты не можешь описать задачу, которую решаешь - то ты ее не решишь, ни сам, ни с чужой помощью, т.к. не помогут потому что банально не поймут в чем помочь надо.
28 ноя 18, 20:36    [21747886]     Ответить | Цитировать Сообщить модератору
 Re: Поиск любых сочетаний из К чисел  [new]
Gennadiy Usov
Member

Откуда:
Сообщений: 945
Dima T
Gennadiy Usov
+ Я так понимаю сочетания из 4-х по 4
0	0	0	0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1
И чем отличается у Вас первое и последнее сочетания по смыслу?

Поздравляю, ты изобрел двоичную систему счисления. Проблема только в том что ее 100 лет назад изобрели.

Умножь первое число на 8, второе на 4, третье на 2, четвертое как есть. Сложи что получилось и получишь 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15. Это типа перевод из двоичной в десятичную.

Я не понимаю зачем тебе надо изобретать этот древний велосипед?
Нет, сам велосипед я прекрасно понимаю, но не понимаю что дальше ты хочешь с ним делать?
Это ты увидел двоичную систему, а я увидел номера чисел, которые участвуют в сочетаниях: 1 в третьей колонке - значит третье число участвует в сочетании.
Кстати, это описано в 21281836.

А ты так и не ответил на вопрос:
И чем отличается у тебя первое и последнее сочетания в твоих сочетаниях по смыслу?

Мне кажется, что ты рассматриваешь не сочетания, а перестановки чисел. А эта задача уже не по теме топика.
Из вики: "сочетанием из n по k называется набор k элементов, выбранных из данного множества, содержащего n различных элементов".
28 ноя 18, 20:47    [21747889]     Ответить | Цитировать Сообщить модератору
 Re: Поиск любых сочетаний из К чисел  [new]
Dima T
Member

Откуда:
Сообщений: 13032
Gennadiy Usov
А ты так и не ответил на вопрос:
И чем отличается у тебя первое и последнее сочетания в твоих сочетаниях по смыслу?

Я не могу ответить на этот вопрос, не вижу в нем смысла!

Мои сочетания просты и понятны. Если применительно к ферзям, то число означает позицию в строке, а его положение - номер строки.
Т.е. 3,2,0,1 это такая доска
0123
Ф
Ф
Ф
Ф
28 ноя 18, 21:03    [21747899]     Ответить | Цитировать Сообщить модератору
 Re: Поиск любых сочетаний из К чисел  [new]
Dima T
Member

Откуда:
Сообщений: 13032
Теперь ты объясни что значит твое 1101. Простыми словами.
28 ноя 18, 21:07    [21747900]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 5 6 7 [8] 9   вперед  Ctrl      все
Все форумы / Программирование Ответить