Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Большая просьба! Не подскажите, где можно найти алгоритм поиска всех возможных сочетаний из К чисел, включая одно число. Хотя с одним числом все ясно. Данный алгоритм необходим для поиска сочетаний двоек вертикалей при определения решений на досках МхМ. В дальнейшем необходимо будет ввести ограничения, например, цифра 4 не может быть с цифрой 7 в одном сочетании. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2018, 14:01 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Dima T, Эту формулу я видел. Думал. что кто-то видел алгоритм, реализующий эту формулу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2018, 16:19 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Ну ведь если для парных, то ваще просто в лоб: каждый с каждым и "пополам", верхний треугольник 2мерной матрицы перебора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2018, 17:32 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
exp98, а если и по 3, и по 4 и по..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2018, 17:45 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usovexp98, а если и по 3, и по 4 и по..... Если я правильно понял и нигде не ошибся то как-то так Сочетание из N по К (K>1) 1. цикл L от 1 до N-K+1 1.1. Заполняем M[1]=L; M[2]=L+1;... M[K-1]=L+K-2; --(Это тоже циклом, лень писать) 1.2. цикл J от L+K-1 до N 1.2.1. M[K]=J; 1.2.2. Здесь имеем в M очередное сочетание ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2018, 18:48 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Буквально на прошлой неделе решал задачу с сочетаниями. ABCD - 4 символаю сочетаний будет 2^4 - 1. Если сочетаний n, то 2^n - 1 Как решать: ABCD 0001 0010 0011 0100 0101 0110 0111 1111 1001 1010 1011 1100 1101 1110 1111 Строишь такую матрицу из 0 и 1. Потом цикл от i = 1 до n i - строка. Где единицы - берёшь символ, где 0 - не берёшь символ. Как ты понял, в матрице будет i в двоичном представлении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2018, 19:03 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Александр Бердышев, Идея хорошая. Но дело в следующем: как заполнить такую матрицу, размером, например, 120 х 120. Вариантов где-то 6,64614E+35. Можно начать и с меньших значений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2018, 19:30 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovDima T, Эту формулу я видел. Думал. что кто-то видел алгоритм, реализующий эту формулу. Есть формула вычисления приближенного значения факториала, но для точного значения считать как в школьном учебнике, т.е. для n! перемножить числа от 1 до n. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2018, 19:54 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovАлександр Бердышев, Идея хорошая. Но дело в следующем: как заполнить такую матрицу, размером, например, 120 х 120. Вариантов где-то 6,64614E+35. Можно начать и с меньших значений. Ошибся. Для доски 1000х1000, наверное, потребуется сделать комбинации из 67 чисел. Вариантов где-то 7,3787E+19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2018, 20:00 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
m7mЕсли я правильно понял и нигде не ошибся то как-то так Сочетание из N по К (K>1) 1. цикл L от 1 до N-K+1 1.1. Заполняем M[1]=L; M[2]=L+1;... M[K-1]=L+K-2; --(Это тоже циклом, лень писать) 1.2. цикл J от L+K-1 до N 1.2.1. M[K]=J; 1.2.2. Здесь имеем в M очередное сочетание Я попробовал начать писать алгоритм, и получается, что количество вложенных циклов - переменное ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2018, 20:05 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovDima T, Эту формулу я видел. Думал. что кто-то видел алгоритм, реализующий эту формулу.на каком языке программирования? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2018, 20:07 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
паскаль: http://www.cyberforum.ru/turbo-pascal/thread113383.html http://moul49.narod.ru/pascal/Pascal_10_1.pdf http://e-maxx.ru/algo/generating_combinations ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2018, 20:10 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovЯ попробовал начать писать алгоритм, и получается, что количество вложенных циклов - переменное ! Тебе что надо: количество сочетаний или все варианты сочетаний? Это разные вещи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2018, 20:31 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
S.G., Спасибо за информацию. Изучаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2018, 20:32 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Dima TGennadiy UsovЯ попробовал начать писать алгоритм, и получается, что количество вложенных циклов - переменное ! Тебе что надо: количество сочетаний или все варианты сочетаний? Это разные вещи. Все варианты. А потом буду отбрасывать те, в которых не устраивает сочетания цифр. Или делать это параллельно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2018, 20:37 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovDima Tпропущено... Тебе что надо: количество сочетаний или все варианты сочетаний? Это разные вещи. Все варианты. А потом буду отбрасывать те, в которых не устраивает сочетания цифр. Или делать это параллельно. Gennadiy UsovВариантов где-то 7,3787E+19. Давай я за тебя посчитаю: если обрабатывать миллиард (1E+9) в секунду, то потребуется 7,3787E+10 секунд или 2000+ лет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2018, 20:50 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Dima TGennadiy UsovВариантов где-то 7,3787E+19. Давай я за тебя посчитаю: если обрабатывать миллиард (1E+9) в секунду, то потребуется 7,3787E+10 секунд или 2000+ лет Пока я не говорю о вычислении. Я пока говорю об алгоритме. А там будет видно, для каких досок данный алгоритм будет применим с точки зрения производительности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2018, 20:56 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Александр БердышевБуквально на прошлой неделе решал задачу с сочетаниями. ABCD - 4 символаю сочетаний будет 2^4 - 1. Если сочетаний n, то 2^n - 1 Как решать: ABCD 0001 0010 0011 0100 0101 0110 0111 1111 1001 1010 1011 1100 1101 1110 1111 Строишь такую матрицу из 0 и 1. Потом цикл от i = 1 до n i - строка. Где единицы - берёшь символ, где 0 - не берёшь символ. Как ты понял, в матрице будет i в двоичном представлении. Спасибо Александр Бердышев! По новому посмотрел на это сообщение. Вот оно решение. И не надо сложных программ, и не нужно много времени. Если посмотреть на данный перечень сочетаний, то оказывается, что он состоит из последовательности чисел от 1 до 15, представленных в двоичном виде (есть ошибка: вместо первого 1111 надо писать 1000). То есть, " загоняя" в массив перменных последовательность чисел от 1 до ..... вообщем много, получаем нужные нам сочетания, выбирая эти сочетания из элемента массива по-битово. Все!!!! Теперь нужно понять: какова вместительность ячейки на отдельно взятом компьютере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2018, 07:08 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovДля доски 1000х1000, наверное, потребуется сделать комбинации из 67 чисел. Вариантов где-то 7,3787E+19. То есть, " загоняя" в массив перменных последовательность чисел от 1 до ..... вообщем много, получаем нужные нам сочетания, выбирая эти сочетания из элемента массива по-битово. Все!!!! Теперь нужно понять: какова вместительность ячейки на отдельно взятом компьютере. Далее интереснее. Могут сказать, что не хватит памяти для массива из 7,3787E+19 чисел, а если смотреть большие доски, и большие массивы. Однако если еще раз взглянуть на сочетания, которые представил Александр Бердышев, то окажется, что сочетания с 8 по 15 повторяют сочетания с 1 по 7 (с добавлением сочетания 0000) при добавлении сочетания 1, но уже со сдвигом по колонкам на 3 колонки. То есть, мы имеем восьмеричную систему счисления. И имея в памяти только 8 сочетаний (с 1 по 7 плюс 0000), мы можем описать все сочетания в количестве 7,3787E+19. Мы можем для удобства выстроить любую систему счисления, в зависимости от удобства, кратную 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2018, 07:22 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Если не удобно работать в двоичной системе и в работе с битами, то можно раотать в десятичной. Для этого формируем матрицу 10 х 512, и формируем элементы этой матрицы следующим образом: либо 1, либо 0. Такая матрица формирууется 1 раз. Аналогично восьмеричной системе, с помощью такой матрицы можно формировать любые сочетания для очень больших массивов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2018, 09:07 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovБольшая просьба! Не подскажите, где можно найти алгоритм поиска всех возможных сочетаний из К чисел, включая одно число. Хотя с одним числом все ясно. Данный алгоритм необходим для поиска сочетаний двоек вертикалей при определения решений на досках МхМ. В дальнейшем необходимо будет ввести ограничения, например, цифра 4 не может быть с цифрой 7 в одном сочетании. это обычно называют комбинаторной генерацией с, тоже обычным, отсечением неподходящих вариантов на разных шагах генерации очередного варианта и конечно есть куча алгоритмов и есть, уже традиционная, теория таких алгоритмов вот, например, Рейнгольд, Нивергельт, Део Комбинаторные алгоритмы. Теория и практика. 1980 год (!) ... Кнут начинал писать в 4 томе про это, дабы обощить еще более обще, но не дописал ______________ Задачу повнятнее опиши, если нужны советы: матрица заполняется числами с повторением и и какие конфигурации чисел годны и что нужно оценивать и в каких критериях на пригодных конфигурациях? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2018, 13:07 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov То есть, мы имеем восьмеричную систему счисления. И имея в памяти только 8 сочетаний (с 1 по 7 плюс 0000), мы можем описать все сочетания в количестве 7,3787E+19. Мы можем для удобства выстроить любую систему счисления, в зависимости от удобства, кратную 2. Все можно, только с временем будет напряг 21282030 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2018, 13:56 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Попробую ответить сразу всем. S.G.Gennadiy Usov То есть, мы имеем восьмеричную систему счисления. И имея в памяти только 8 сочетаний (с 1 по 7 плюс 0000), мы можем описать все сочетания в количестве 7,3787E+19. Мы можем для удобства выстроить любую систему счисления, в зависимости от удобства, кратную 2. Все можно, только с временем будет напряг 21282030 Когда-нибудь напряг всегда наступает. А использовать или не использовать алгоритм уже решают пользователь и его компьютер. Главное, чтобы алгоритм был. Dima TТут посмотри https://prog-cpp.ru/placement/ https://prog-cpp.ru/combinations/ Спасибо. Я конечно посмотрю. С другой стороны получился неплохой алгоритм поиска сочетаний 21282517 . Удобный, и цикл только один: от 1 до N. Чем этот алгоритм не нравится? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2018, 15:15 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
МудроглюковGennadiy UsovБольшая просьба! Не подскажите, где можно найти алгоритм поиска всех возможных сочетаний из К чисел, включая одно число. Хотя с одним числом все ясно. Данный алгоритм необходим для поиска сочетаний двоек вертикалей при определения решений на досках МхМ. В дальнейшем необходимо будет ввести ограничения, например, цифра 4 не может быть с цифрой 7 в одном сочетании. это обычно называют комбинаторной генерацией с, тоже обычным, отсечением неподходящих вариантов на разных шагах генерации очередного варианта Задачу повнятнее опиши, если нужны советы: матрица заполняется числами с повторением и и какие конфигурации чисел годны и что нужно оценивать и в каких критериях на пригодных конфигурациях? Имеется несколько последовательностей чисел: 1,2,3, далее 1,2,3,4,5,6, далее 1,2,3,4,5,6,7,8,9, и т.д. Для каждой нужно найти все сочетания. При этом: В первой последовательности в одном сочетании не могут быть 1 и 2, во второй - 1 и 3, 2 и 4, 3 и 5, 4 и 6, в третьей - 1 и 4, 2 и 5, 3 и 6, 4 и 7, 5 и 8, 6 и 9 и т.д. Здесь видно, что существует некоторая прогрессия, которую можно распространить на последовательность, длиной 3 х К. Вот и все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2018, 15:24 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovС другой стороны получился неплохой алгоритм поиска сочетаний 21282517 . Удобный, и цикл только один: от 1 до N. Чем этот алгоритм не нравится? Если подошел, то пользуйся. Мне показалось там совсем про другую задачу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2018, 15:25 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovМудроглюковпропущено... это обычно называют комбинаторной генерацией с, тоже обычным, отсечением неподходящих вариантов на разных шагах генерации очередного варианта Задачу повнятнее опиши, если нужны советы: матрица заполняется числами с повторением и и какие конфигурации чисел годны и что нужно оценивать и в каких критериях на пригодных конфигурациях? Имеется несколько последовательностей чисел: 1,2,3, далее 1,2,3,4,5,6, далее 1,2,3,4,5,6,7,8,9, и т.д. Для каждой нужно найти все сочетания. При этом: В первой последовательности в одном сочетании не могут быть 1 и 2, во второй - 1 и 3, 2 и 4, 3 и 5, 4 и 6, в третьей - 1 и 4, 2 и 5, 3 и 6, 4 и 7, 5 и 8, 6 и 9 и т.д. Здесь видно, что существует некоторая прогрессия, которую можно распространить на последовательность, длиной 3 х К. Вот и все. в таком контексте наверно не последовательности (математические), а наборы из чисел из ... от 1 до 99 ... и сочетания же: из множества М по сколько и с повторениями ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2018, 16:16 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Треугольник Паскаля нам тут в помощь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2018, 17:00 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Мне предложили несколько вариантов алгоритмов определения сочетаний, так что глаза разбегаются. Буду изучать эти алгоритмы и сравнивать. А пока попробую составить свой алгоритм, ведь остальные создают свои алгоритмы, о котором говорил в сообщении 21282517 . Допустим, что есть последовательность чисел от 1 до М1. Массив С (М1) предназначен для хранения одного сочетания. Необходимо найти все сочетания этих чисел. A = i, 1 <= i <= B, B = (2 в степени М1) – 1, А - переменная. Переводим А в двоичный вид и каждую цифру двоичного вида числа А (0 или 1) помещаем в элементы массива С (М): j = 1, С( 1 ) = остаток от деления (А / 2), D = А / 2, D – переменная, метка 1: если мы хотим иметь в массиве С не единицы, а конкретные цифры, то С ( j ) = j, если D = 0 то (массив С (М) сформирован, М = j, ищем новое значение А – переходим на метку 2). j = j +1, С ( j ) = остаток от деления (С ( j - 1 ) / 2), D = С ( j - 1 ) / 2, возврат на метку 1. метка 2: Теперь можно для запоминания сочетания поместить его в двумерный массив: С1 (I, j ) = С ( j ), 1 <= j <= М, С1 (В, М1 ) и остальные ячейки строки заполнить нулями:С1 (I, j ) = 0, М < j <= М1, Получается, что массив сочетаний состоит либо из 0 и 1, либо из 0 и конкретных цифр. Можно добавить процедуру, если нужно, которая убирает нули. Вот и все сочетания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2018, 06:53 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Алгоритм 21283691 позволяет частично решить задачу 21283022 . В задаче В чисел, причем В кратно 3. Разделим эти числа на три части, А = В/3, в первой части первые А чисел, во второй - средние А чисел, в третьей - последние А чисел. Для первых А чисел количество сочетаний будет равно В1, где В1= 2 в степени А. Эти сочетания будут соответствовать числа от 0 до (В1 - 1). Здесь 0 необходим, поскольку будут циклы. Теперь можно найти сочетания для чисел, которые составляют 1-ую и 3-ю части. Для этой цели формируем массив В2 (В3), где В3 = В1 х В1. Тогда В2 (i x В1 + j) = i x В3 + j, 0 <= i <= В1, 0 <= j <= В1. Чтобы определить сочетания, надо элементы массива В2 (В3) разложить на составляющие согласно алгоритму 21283691 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2018, 16:52 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
https://google.github.io/guava/releases/snapshot-jre/api/docs/index.html https://github.com/dpaukov/combinatoricslib Не забудьте проверить лицензии прежде чем чо-то включать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2018, 17:40 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
unregestered https://google.github.io/guava/releases/snapshot-jre/api/docs/index.html https://github.com/dpaukov/combinatoricslib Не забудьте проверить лицензии прежде чем чо-то включать Это к чему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2018, 19:30 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
что к чему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2018, 01:39 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
unregestered https://google.github.io/guava/releases/snapshot-jre/api/docs/index.html https://github.com/dpaukov/combinatoricslib Не забудьте проверить лицензии прежде чем чо-то включать при чем здесь лицензии, или просто что-то надо сказать, типа, скучно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2018, 05:48 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovВ задаче В чисел, причем В кратно 3. Разделим эти числа на три части, А = В/3, Может оказаться, что при достаточно больших значений В, например, для доски 1000х1000 это значение более 20, количество сочетаний может превышать размер ячейки на компьютере. Поэтому лучше использовать массивы сочетаний более мелких массивов, а уже их них составлять большие массивы способом, аналогичным алгоритму 21283691 . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2018, 07:28 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
unregestered https://google.github.io/guava/releases/snapshot-jre/api/docs/index.html https://github.com/dpaukov/combinatoricslib Не забудьте проверить лицензии прежде чем чо-то включать А какие алгоритмы-то использовал автор? Или чт автор считает, что он что-то оригинальное реализовал, хотя может быть, что ОРИГИНАЛЬНОЕ - тогда тем более заявить-описать "в чем и что оригинальное?"? _______ Вот ПЕРЕСТАНОВКИ - уже выделяют ЧЕТЫРЕ типа алгоритмов: - лексикографическое упорядочение - вестор инверсий - транспозиции смежных элементов - вложенные циклы ЗЫ и для разных задач - разные типы по-разному пригодны оказываются (при углублении в тему открываются всякая всячина) ЗЫ 5-ый тип может быть уже кем-то изобретен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2018, 07:51 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Александр Бердышев Если сочетаний n, то 2^n - 1 0001 0010 0011 0100 0101 0110 0111 1111 1001 1010 1011 1100 1101 1110 1111 Строишь такую матрицу из 0 и 1. Потом цикл от i = 1 до n i - строка. Где единицы - берёшь символ, где 0 - не берёшь символ. Есть еще вариант представления сочетаний с использованием этой ЗАМЕЧАТЕЛЬНОЙ картинки: На картинке 15 сочетаний. Добавляем к ним вначале 16-е сочетание - 0000. Пусть эти сочетания находятся в матрице большого размера, и сочетания в этой матрице имеют координаты: колонки (1,2,3,4) и строчки (1,2,...16). Тогда матрица 4х16 копируется и добавляется к начальной матрице. Получаем матрицу 4х32. Теперь добавляем к добавленной матрице 5-ю колонку с 1, и новая добавленная матрица и начальная матрица образуют матрицу 5х32 ( у начальной матрице в 5-й колонке будут 0). В результате получили сочетания для пяти чисел! Аналогично можно будет построить сочетания для любых чисел, если позволяет компьютер (размер матрицы!). Сочетание 0000 используется только для построения матриц, при использовании матриц в расчетах это сочетание не нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2018, 07:22 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Теперь появилась новая задачка: Имеется несколько последовательностей чисел: 1,2,3, далее 1,2,3,4,5, далее 1,2,3,4,5,6,7, и т.д. Для каждой последовательности чисел нужно найти все сочетания. При этом: в первой последовательности в одном сочетании не могут быть 1 и 3, во второй - 1 и 4, 2 и 5, в третьей - 1 и 5, 2 и 6, 3 и 7, и т.д. Здесь видно, что существует некоторая прогрессия, которую можно распространить на последовательность чисел, длиной 1 + 2 х К. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2018, 08:01 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov, С такими ограничениями проще всего сделать рекурсивную генерацию - на следующий уровень рекурсии передаем текущий набор (не стоит называть их сочетаниями - всё-таки сочетание есть устоявшийся термин из комбинаторики) и модифицированную маску ограничения Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2018, 08:56 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Вот для примера 5/3 (1,2,3,4,5, не могут быть 1 и 4, 2 и 5) 00000 10000 01000 11000 00100 10100 01100 11100 00010 01010 00110 01110 00001 10001 00101 10101 00011 00111 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2018, 09:03 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
MBoВот для примера 5/3 (1,2,3,4,5, не могут быть 1 и 4, 2 и 5) 00000 10000 01000 11000 00100 10100 01100 11100 00010 01010 00110 01110 00001 10001 00101 10101 00011 00111 Когда рассматриваешь массивы очень большие, необходимо иметь программное обеспечение для поиска сочетаний. Ручной способ здесь не помогает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2018, 10:13 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
MBoGennadiy Usov, С такими ограничениями проще всего сделать рекурсивную генерацию - на следующий уровень рекурсии передаем текущий набор (не стоит называть их сочетаниями - всё-таки сочетание есть устоявшийся термин из комбинаторики) и модифицированную маску ограничения А если количество цифр 250? Можно будет определить все сочетания? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2018, 10:35 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov, авторА если количество цифр 250? Можно будет определить все сочетания? 2^250 множеств нереально перебрать, и тем более обработать и вывести или записать. С ограничениями их будет поменьше, но даже 2^64 уже непомерно много (понадобится 600 лет при генерации миллиарда множеств в секунду) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2018, 10:47 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
MBoGennadiy Usov, авторА если количество цифр 250? Можно будет определить все сочетания? 2^250 множеств нереально перебрать, и тем более обработать и вывести или записать. С ограничениями их будет поменьше, но даже 2^64 уже непомерно много (понадобится 600 лет при генерации миллиарда множеств в секунду) 1. А сколько будет немного? И как быть с величиной ячейки? 2. А как же англичане, которые считают на доске 1000х1000 и зависают (почему-то), хотя там намного больше решений 20960899 ? 3. А помечтать, что компьютер будет когда-то быстрее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2018, 11:17 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov, >1. А сколько будет немного? И как быть с величиной ячейки? Если перебирать все варианты, то считабельно 2^32-2^42 (10^14). Про ячейки я не в курсе. >2. А как же англичане, которые считают на доске 1000х1000 и зависают (почему-то), хотя там намного больше решений20960899? Вероятно, они используют алгоритм, не требующий брутфорсного перебора ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2018, 11:29 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
MBoGennadiy Usov, >1. А сколько будет немного? И как быть с величиной ячейки? Если перебирать все варианты, то считабельно 2^32-2^42 (10^14). Про ячейки я не в курсе. >2. А как же англичане, которые считают на доске 1000х1000 и зависают (почему-то), хотя там намного больше решений20960899? Вероятно, они используют алгоритм, не требующий брутфорсного перебора А если и здесь будет алгоритм, а не прочий перебор? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2018, 12:07 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov, авторА если и здесь будет алгоритм, а не прочий перебор? Ну так его, видимо, и нужно придумать? Хорошая идея алгоритма может позволить если и не уйти от экспоненциального роста сложности, то хотя бы понизить его показатель ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2018, 12:15 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
MBoGennadiy Usov, авторА если и здесь будет алгоритм, а не прочий перебор? Ну так его, видимо, и нужно придумать? Хорошая идея алгоритма может позволить если и не уйти от экспоненциального роста сложности, то хотя бы понизить его показатель Согласен. Пока вижу одну трудность в алгоритме 21283691 , которая заключается в следующем: чтобы выйти с алгоритмом, который находит большое множество решений, на доску 1001х1001 (или близкую к ней) 21035592 , нужно найти возможность определения различных сочетаний для 250 чисел (количество независимых "четверок" ферзей на данной доске). А это где-то 9,04626E+74. Такое число для выше указанного метода вряд ли подойдет: не влезет в ячейку. А если влезет, то пропадут всякие о-малые. Поэтому необходимо несколько видоизменить алгоритм. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2018, 13:00 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov сочетания с 8 по 15 повторяют сочетания с 1 по 7 (с добавлением сочетания 0000) при добавлении сочетания 1, но уже со сдвигом по колонкам на 3 колонки. То есть, мы имеем восьмеричную систему счисления. И имея в памяти только 8 сочетаний (с 1 по 7 плюс 0000), мы можем описать все сочетания в количестве 7,3787E+19. Мы можем для удобства выстроить любую систему счисления, в зависимости от удобства, кратную 2. Попробуем взглянуть на проблему по другому. Имеем число А = 2 в степени 250. Данное число можно представить как А = В в степени 10, где В = 2 в степени 25. Количество сочетаний для 25 чисел равно 16777216. Данное число будет «считабельно». И все сочетания для 25 чисел поместим в массив С (25, 16777216), естественно, вместе с 00000….00000. Осталось придумать алгоритм собирания 10 сочетаний по 25 из массива С в одно сочетание по 250. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2018, 13:25 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovИмеем число А = 2 в степени 250. Данное число можно представить как А = В в степени 10, где В = 2 в степени 25. Количество сочетаний для 25 чисел равно 16777216. Данное число будет «считабельно». И все сочетания для 25 чисел поместим в массив С (25, 16777216), естественно, вместе с 00000….00000. Осталось придумать алгоритм собирания 10 сочетаний по 25 из массива С в одно сочетание по 250. Рассмотрим один из возможных алгоритмов, позволяющих решить данную задачу. Допустим имеется массив сочетаний С(25, 16777216), массив сочетания С1 (250), массив счетчиков Р(10) и общий счетчик Р1. Присвоим всем значениям счетчика значение 1: Р( i ) = 1, 1 <= i <= 10, Р1 =1, Р2 = 16777216, где Р1 – счетчик сочетаний по 250. Метка 1: Далее основное присвоение: цикл С1( j + 25 * (i – 1)) = С( j, Р( i ) ), 1 <= i <= 10, 1 <= j <= 25. Р( 1 ) = Р( 1 ) + 1, Р1 = Р1 +1, если Р( 1 ) > Р2 то (Р( 1 ) = 1, Р( i ) = Р( i ) +1, 2 <= i <= 10, если Р( i ) <= Р2 то (переход к метке 1) иначе Р( i ) = 1). Здесь массив С1 (250) - одномерный. Но можно его сделать двумерным с помощью счетчика Р1. Можно рассмотреть другие варианты соотношений длины малых массивов и их количества : 10 и 25, 50 и 5, 5 и 50. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2018, 12:36 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovТеперь появилась новая задачка: Имеется несколько последовательностей чисел: 1,2,3, далее 1,2,3,4,5, далее 1,2,3,4,5,6,7, и т.д. Для каждой последовательности чисел нужно найти все сочетания. При этом: в первой последовательности в одном сочетании не могут быть 1 и 3, во второй - 1 и 4, 2 и 5, в третьей - 1 и 5, 2 и 6, 3 и 7, и т.д. Здесь видно, что существует некоторая прогрессия, которую можно распространить на последовательность чисел, длиной 1 + 2 х К. Перед тем как считать все сочетания в лоб, попробуем оценить количество сочетаний. Разделим массив 1 + Кх2 на части: в первую группу возьмем первые числа от 1 до К +1, во вторую группу возьмем остальные К чисел. Тогда в первой группе получается Р1 = (2 в степени (К + 1)) сочетаний чисел, а во второй группе получается Р2 = (2 в степени К ) сочетаний чисел. Попробуем складывать сочетания из первой и второй группы. В силу условий несовместимости отдельных чисел получается следующая зависимость: при выборке по 1 числу из второй группы первая группа уменьшается в два раза, при выборке по 2 числа из второй группы первая группа уменьшается в четыре раза, при выборке по 3 числа из второй группы первая группа уменьшается в восемь раз, … При выборке всех чисел из второй группы имеем только 2 сочетаний из первой группы. Осталось только сложить между собой произведения сочетаний (к по n ) на число (2 в степени (К + 1- к)). Наверное, есть формула по определению таких сумм. Может быть кто-то встречал такую формулу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2018, 13:43 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov, формула по определению таких сумм безусловно есть, только знают её не только лишь все, мало кто вообще её знает. А если б/сарказма, то можно попробовать метод производящих функций. Как раз есть возможность представить в рекуррентном виде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2018, 14:04 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
exp98Gennadiy Usov, формула по определению таких сумм безусловно есть, только знают её не только лишь все, мало кто вообще её знает. А если б/сарказма, то можно попробовать метод производящих функций. Как раз есть возможность представить в рекуррентном виде. Спасибо! Посмотрел производящие функции. https://ru.wikipedia.org/wiki/Сочетание Сумма сочетаний умноженных на х в степени к. У нас х = 2. Только умножение идет на 2 в степени (К + 1- к). С другой стороны, сочетание (к по n) равно сочетанию ( (n- к) по n). То есть, сумму произведений сочетаний на степень можно развернуть в другую сторону. И получается нормальная производящая функция, только значения каждой степени умноженное еще на 2. Следовательно, значение производящая функция равно: 2 х ( 1 + 2 ) (в степени n). Кажется так. Проверки на массивах вручную показали: массив 3 – 6 сочетаний, массив 5 – 18 сочетаний, массив 7 – 54 сочетаний. Следовательно, можно говорить, что для массива из 83 чисел имеем 2,66056E+39 сочетаний. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2018, 20:02 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Замечен интересный момент периодичности или цикличности расположения сочетаний в массиве сочетаний из n цифр. Для первой колонке справо имеем сначала 0, потом 1, затем 0 и опять 1, то есть 1 на 1. Для второй колонки будет 2 на 2. Для третьей колнки будет 4 на 4. Для четвертой колонки будет 8 на 8. и т. д. Для колонки n будет Р на Р, где Р = 2 в степени n. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2018, 11:32 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovАлгоритм 21283691 позволяет частично решить задачу 21283022 . В задаче В чисел, причем В кратно 3. Разделим эти числа на три части, А = В/3, в первой части первые А чисел, во второй - средние А чисел, в третьей - последние А чисел. Для первых А чисел количество сочетаний будет равно В1, где В1= 2 в степени А. Эти сочетания будут соответствовать числа от 0 до (В1 - 1). Здесь 0 необходим, поскольку будут циклы. Теперь можно найти сочетания для чисел, которые составляют 1-ую и 3-ю части. Для этой цели формируем массив В2 (В3), где В3 = В1 х В1. Тогда В2 (i x В1 + j) = i x В3 + j, 0 <= i <= В1, 0 <= j <= В1. Чтобы определить сочетания, надо элементы массива В2 (В3) разложить на составляющие согласно алгоритму 21283691 Теперь добавляем средние А чисел. И смотрим, сколько теперь получается сочетаний. В ручном режиме получилось следующее: для трех цифр получается 5 сочетаний, для шести цифр получается 25 сочетаний, для девяти цифр получается 125 сочетаний. Если рассмотреть все сочетания, то оказывается, что получается сумма произведений сочетаний (к по n) на число 4 в степени к. То есть, это производящие функции. И сумма этих произведений будет (1 + 4 ) в степени n. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2018, 19:27 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Сообщение. Алгоритм определения сочетаний чисел, часть из которых несовместима с другими числами. Ранее в сообщениях 21302076 21300743 говорилось о сочетаниях таких чисел. Приводятся описание алгоритмов определения сочетаний. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2018, 14:19 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Как известно, количество сочетаний из К чисел равно 2^К. Все эти сочетания можно разбить на пары, которые в «сумме» дадут сочетание 111111…1111. Если требуется оставить из этих пар только одно сочетание, а также убрать сочетания 00000....000 и 1111…111, то останутся 2^(К-1)-1 сочетаний. Попробую написать программу для поиска таких сочетаний. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2018, 13:46 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov, чего там искать: 00001....01111 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2018, 20:03 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovКак известно, количество сочетаний из К чисел равно 2^К. то о чем вы пишите есть количество подмножеств множества из k элементов, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2018, 20:06 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovКак известно, количество сочетаний из К чисел равно 2^К. Все эти сочетания можно разбить на пары, которые в «сумме» дадут сочетание 111111…1111. Если требуется оставить из этих пар только одно сочетание, а также убрать сочетания 00000....000 и 1111…111, то останутся 2^(К-1)-1 сочетаний. Попробую написать программу для поиска таких сочетаний. У вас - пробелы в дискретной математике. Почитайте здесь http://vyshka.math.ru/pspdf/s09/discrete/DiscrMath09Chap1.pdf Перестановки, сочетания, размещения . Это разные понятия. В ферзевой задаче я использовал перестановки ладей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2018, 20:26 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
MBoGennadiy Usov, чего там искать: 00001....01111То, что точки в двух сочетаниях 00000....000 и 1111…111, это в левом 0, в правом 1, просто 0 или 1 очень много в каждом сочетании. Идея в чем: есть сочетания 00010011 и 11101100. Мне нужно одно из этих сочетаний исключить (не рассматривать). И так для всех сочетаний (пар сочетаний). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2018, 20:29 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovИдея в чем: есть сочетания 00010011 и 11101100. Мне нужно одно из этих сочетаний исключить (не рассматривать). И так для всех сочетаний (пар сочетаний). Если не ошибаюсь то достаточно перебрать все сочетания до 01111111, т.е. до 2^(К-1) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2018, 20:33 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
maytonУ вас - пробелы в дискретной математике. Почитайте здесь http://vyshka.math.ru/pspdf/s09/discrete/DiscrMath09Chap1.pdf Перестановки, сочетания, размещения . Это разные понятия. В ферзевой задаче я использовал перестановки ладей.Я применил статью https://ru.wikipedia.org/wiki/Сочетание Мы с Вами говорим о разных задачах: - Вы говорите о перестановке ладей (ферзей); - я говорю о сочетаниях по работе с разными элементами задачи(с какими элементами должны работать в настоящий момент). Это не обязательно ферзи. Это могут быть двойки, тройки, четверки, пятерки и т.д. ферзей. Поэтому я применяю термин сочетания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2018, 20:39 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Dima TGennadiy UsovИдея в чем: есть сочетания 00010011 и 11101100. Мне нужно одно из этих сочетаний исключить (не рассматривать). И так для всех сочетаний (пар сочетаний).Если не ошибаюсь то достаточно перебрать все сочетания до 01111111, т.е. до 2^(К-1)С точки зрения количества - верно. А вот подряд перебирать сочетания не получится. Самый лучший способ проверить - это сделать все сочетания для 3-х (001, 010, 100), 4-х и 5-ти чисел (объектов). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2018, 20:44 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovmaytonУ вас - пробелы в дискретной математике. Почитайте здесь http://vyshka.math.ru/pspdf/s09/discrete/DiscrMath09Chap1.pdf Перестановки, сочетания, размещения . Это разные понятия. В ферзевой задаче я использовал перестановки ладей.Я применил статью https://ru.wikipedia.org/wiki/Сочетание Мы с Вами говорим о разных задачах: - Вы говорите о перестановке ладей (ферзей); - я говорю о сочетаниях по работе с разными элементами задачи(с какими элементами должны работать в настоящий момент). Это не обязательно ферзи. Это могут быть двойки, тройки, четверки, пятерки и т.д. ферзей. Поэтому я применяю термин сочетания. Вы написали. Gennadiy UsovКак известно, количество сочетаний из К чисел равно 2^К. Это - некорректно. 2^K - не имеет никакого отношения к термину сочетания . Я вас поправил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2018, 20:44 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Используя опыт построения сочетаний для 2, 3, 4, 5 объектов в количестве одного из пары, можно сделать следующую программу: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. В данном виде программа позволяет получить массив сочетаний, так как все сочетаний формируются в цикле (и не в одном). Поскольку сочетаний может быть очень много, то целесообразно сделать эту программу в виде процедуры, чтобы «вытаскивать» только одно очередное сочетание, по порядку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2018, 07:31 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
В предыдущем сообщении 21688676 операторы: Код: javascript 1. 2. нужно заменить на операторы: Код: javascript 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2018, 13:04 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
И ещё заменить операторы Код: javascript 1. 2. 3. на операторы Код: javascript 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2018, 13:10 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Кстати, можно немного упростить программу 21688676 с учетом последующих изменений с целью определения всех сочетаний: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2018, 13:18 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov, не совсем понимаю что должно получиться. Можно пример для K = 3 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2018, 13:40 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov, JavaScript не умеет возводить в степень так как вы описали. С одной стороны похвально что вы пытаетесь помочь. С другой стороны это выглядит как медвежья услуга. И помогли и запутали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2018, 13:55 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Dima TGennadiy Usov, не совсем понимаю что должно получиться. Можно пример для K = 3 ?Вы задали вопрос, а я нашел ошибку: при р1=0 не определен i1. Поэтому вместо: Код: javascript 1. 2. будут операторы: Код: javascript 1. 2. 3. При К = 3 должно получиться 100, 010, 001. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2018, 15:00 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovПри К = 3 должно получиться 100, 010, 001. А при К = 4 добавится 1000, 0100, 0010, 0001. Так ? Если так то это К вариантов, а не 2^(K-1) И показанное это степени двойки, если рассматривать эти числа как двоичные, т.е. Код: sql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2018, 15:13 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
maytonGennadiy Usov, JavaScript не умеет возводить в степень так как вы описали. С одной стороны похвально что вы пытаетесь помочь. С другой стороны это выглядит как медвежья услуга. И помогли и запутали.Тогда по другому: Код: javascript 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2018, 15:14 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Dima TGennadiy UsovПри К = 3 должно получиться 100, 010, 001.А при К = 4 добавится 1000, 0100, 0010, 0001. Так ? Если так то это К вариантов, а не 2^(K-1) И показанное это степени двойки, если рассматривать эти числа как двоичные, т.е. Код: sql 1. 2. 3. 4. А здесь сочетания для К=4 Код: javascript 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2018, 18:09 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov[/src]А здесь сочетания для К=4 Код: javascript 1. 2. 3. 4. 5. 6. 7. [/quot]Кстати, последнее сообщение показывает: если набирать операторы в таблице EXCEL в разных колонках, то табуляция сама получится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2018, 06:04 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Это текст, подготовленный в таблице EXCEL. Постарался большую часть определения сочетаний "запрятать" в процедуру. Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2018, 09:44 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Поторопился. Конечно, не процедура, а function. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2018, 09:47 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov, Зачем тебе goto D1 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2018, 09:56 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovА здесь сочетания для К=4 Код: javascript 1. 2. 3. 4. 5. 6. 7. Кстати, последнее сообщение показывает: если набирать операторы в таблице EXCEL в разных колонках, то табуляция сама получится. Все равно не понимаю логики. По какому принципу выбраны только эти? Почему нет 0111 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2018, 10:55 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Dima TGennadiy UsovА здесь сочетания для К=4 Код: javascript 1. 2. 3. 4. 5. 6. 7. Кстати, последнее сообщение показывает: если набирать операторы в таблице EXCEL в разных колонках, то табуляция сама получится.Все равно не понимаю логики. По какому принципу выбраны только эти? Почему нет 0111 ?По условиям задачи пара сочетаний те, которые в сумме составляют сочетание 1111 (для К=4). А у нас уже есть для 0111 пара 1000(№ 4). Поэтому выбирается одно сочетание из пары, т.е. 1000. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2018, 13:16 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
maytonGennadiy Usov, Зачем тебе goto D1 ?В процедуре ищутся две части сочетаний: левая и правая. р1 отвечает за левую часть, а i2 отвечает за правую часть. Массив Р - это шаблон сочетаний. D1 нужно для того, чтобы "проскочить" часть операций и поменять одну цифру в шаблоне для нового сочетания. Далее, при К=3,4 или 5 получаются следующие сочетаний: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2018, 13:28 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov, Да я не это имел в виду. Его можно заменить на if. Второй goto скорее всего тоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2018, 15:45 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
maytonGennadiy Usov, Да я не это имел в виду. Его можно заменить на if. Второй goto скорее всего тоже.По-моему, у этих операторов разные функции. if - либо то, либо другое. goto - и то и другое, а в зависимости от обстоятельств, только другое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2018, 16:02 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovmaytonGennadiy Usov, Да я не это имел в виду. Его можно заменить на if. Второй goto скорее всего тоже.По-моему, у этих операторов разные функции. if - либо то, либо другое. goto - и то и другое, а в зависимости от обстоятельств, только другое. Тоесть ты не видишь возможности сделать замену? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2018, 17:06 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
maytonGennadiy UsovПо-моему, у этих операторов разные функции. if - либо то, либо другое. goto - и то и другое, а в зависимости от обстоятельств, только другое.Тоесть ты не видишь возможности сделать замену?Пока нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2018, 17:13 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovDima Tпропущено... Все равно не понимаю логики. По какому принципу выбраны только эти? Почему нет 0111 ?По условиям задачи пара сочетаний те, которые в сумме составляют сочетание 1111 (для К=4). А у нас уже есть для 0111 пара 1000(№ 4). Поэтому выбирается одно сочетание из пары, т.е. 1000. Ясно, тогда лишние 1000 и 1001, меняем их на 0111 и 0110. В итоге получаем ДвоичноеДесятичное00011001020011301004010150110601117 Программно цикл такой Код: plaintext 1. 2. или такой Код: plaintext 1. PS на это я и намекал 21688530 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2018, 17:36 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Dima T, Согласен, это есть другое решение задачи. Если сравнивать эти два варианта решения задачи, то получаем: 1)- в Вашем варианте 3 сочетания по 1, 3 сочетания по 2, 1 сочетание по 3. Всего 12. - в моём варианте 3 сочетания по 1, 4 сочетания по 2. Всего 11. Следовательно, в дальнейшем применении процедуры надо будет обрабатывать на 1 объект больше. А это время. 2) - в Вашем варианте идет поиск max = 2^(K-1) чисел - в моём варианте идет поиск max = 2^(K-3) чисел, а чтобы получить из этих чисел числа max = 2^(K-1) надо будет изменить только один 0 на 1 в массиве Р. То есть, мой вариант более трудоёмкий по написанию программы, но, наверное, более быстрый(?). Трудно сравнивать битовое представление (а потом развертка на отдельные 0 и 1) и обычное представление. Кроме того, массив Р может быть намного длиннее, чем i в двоичном виде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2018, 18:23 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovDima T, Согласен, это есть другое решение задачи. Если сравнивать эти два варианта решения задачи, то получаем: 1)- в Вашем варианте 3 сочетания по 1, 3 сочетания по 2, 1 сочетание по 3. Всего 12. - в моём варианте 3 сочетания по 1, 4 сочетания по 2. Всего 11. Следовательно, в дальнейшем применении процедуры надо будет обрабатывать на 1 объект больше. А это время. Твой сложный цикл это тоже лишнее время. Gennadiy Usov2) - в Вашем варианте идет поиск max = 2^(K-1) чисел - в моём варианте идет поиск max = 2^(K-3) чисел, а чтобы получить из этих чисел числа max = 2^(K-1) надо будет изменить только один 0 на 1 в массиве Р. Это за пределами постановки задачи. Выше было сказано что 1000 и 0111 равнозначны и можно взять любое из двух, а сейчас выясняется что одна единица лучше чем три. На сколько лучше? Откуда появилось max = 2^(K-3) ? Gennadiy UsovТрудно сравнивать битовое представление (а потом развертка на отдельные 0 и 1) и обычное представление. Открою тайну: все целые числа хранятся в двоичном виде. Компьютер так устроен что знает только нули и единицы. Десятичные цифры десятичны только в исходном коде, чтобы человеку было удобно читать, а во время исполнения программы используются их двоичные представления. Gennadiy UsovКроме того, массив Р может быть намного длиннее, чем i в двоичном виде. Почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2018, 20:06 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usovmaytonпропущено... Тоесть ты не видишь возможности сделать замену?Пока нет. Посмотри. Второй goto можно попробовать заменить на цикл. Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2018, 20:28 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
maytonПосмотри. Второй goto можно попробовать заменить на цикл.В моём варианте - надо обойти операторы до D1, а в Вашем - эти операторы выполняются. Тогда уж лучше Код: javascript 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2018, 06:20 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Dima TОткуда появилось max = 2^(K-3) ?Из программы (значение К1): Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. Ещё раз посмотрите на картинку 21689842 : справа в сочетаниях всегда для одного значения слева формируется "лесенка" с убыванием от размера К до размера 3 Код: javascript 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2018, 06:29 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Dima TGennadiy UsovКроме того, массив Р может быть намного длиннее, чем i в двоичном виде.Почему?Здесь необходимо уточнение (или сравнение), так как пока путаюсь: - какое максимальное целое число в битах можно представить в компьютере; - какой максимальный размер массива Р можно представить в компьютере? Хочется сравнить эти числа, так как в дальнейшем идет разговор о больших досках (соседний топик). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2018, 06:35 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
И ещё один момент:Dima TПрограммно цикл такой Код: plaintext 1. Мне нужно не двоичное представление, а отдельные цифры из этого двоичного представления, т.е. массив цифр 0 и 1. Выборка таких цифр из числа, кажется, с помощью деления на 2. У меня только сложение. Пока не знаю, что быстрее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2018, 07:36 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usovсправа в сочетаниях всегда для одного значения слева формируется "лесенка" с убыванием от размера К до размера 3 Как понимаю "лесенка" - это вхождение в размер К всех размеров менее К. Если так, то в любой системе счисления есть "лесенка", т.к. они все позиционные . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2018, 14:23 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovDima Tпропущено... Почему?Здесь необходимо уточнение (или сравнение), так как пока путаюсь: - какое максимальное целое число в битах можно представить в компьютере; - какой максимальный размер массива Р можно представить в компьютере? Хочется сравнить эти числа, так как в дальнейшем идет разговор о больших досках (соседний топик). Любое число. Процессор оперирует 32 и 64 битными словами, но никто не мешает взять массив слов и логически рассматривать его как одно число. Операции сравнения (больше, меньше, равно) сделать элементарно для этого числа. Максимальный размер массива зависит от количества имеющейся памяти и размера элемента массива. Для простоты считай что возможен массив из 100 млн. элементов. В принципе без разницы как представлено число: массив слов (двоичное представление) или просто массив где один элемент один бит. Второй способ просто займет больше памяти и медленнее будет обратываться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2018, 14:36 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Dima TGennadiy Usovсправа в сочетаниях всегда для одного значения слева формируется "лесенка" с убыванием от размера К до размера 3Как понимаю "лесенка" - это вхождение в размер К всех размеров менее К. Если так, то в любой системе счисления есть "лесенка", т.к. они все позиционные .Не совсем так. В сообщении 21689842 хорошо видны эти "лесенки". Если идти сверху картинки К=5, то видно, что: - сначала "лесенка" 5х5 - 5 сочетаний - далее для 1 "лесенка" 4х4 - 4 сочетания - далее для 01 "лесенка" 3х3 - 3 сочетания - далее для 11 "лесенка" 3х3 - 3 сочетания. Итого 15 сочетаний. А слева в каждом из этих сочетаний сформированы числа от 00 до 11.(К-3 = 2) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2018, 14:40 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovИ ещё один момент:Dima TПрограммно цикл такой Код: plaintext 1. Мне нужно не двоичное представление, а отдельные цифры из этого двоичного представления, т.е. массив цифр 0 и 1. Выборка таких цифр из числа, кажется, с помощью деления на 2. У меня только сложение. Пока не знаю, что быстрее. Деление на 2 не требует деления в двоичной системе. Это сдвиг. Ты же не делишь на 10 в десятичной, а просто сдвигаешь запятую. Схематично вывод делается так Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Думаю тебе будет интересно почитать что такое битовые операции и булева алгебра . Если по-простому - это набор операций для двоичной системы счисления. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2018, 14:57 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovDima Tпропущено... Как понимаю "лесенка" - это вхождение в размер К всех размеров менее К. Если так, то в любой системе счисления есть "лесенка", т.к. они все позиционные .Не совсем так. В сообщении 21689842 хорошо видны эти "лесенки". Если идти сверху картинки К=5, то видно, что: - сначала "лесенка" 5х5 - 5 сочетаний - далее для 1 "лесенка" 4х4 - 4 сочетания - далее для 01 "лесенка" 3х3 - 3 сочетания - далее для 11 "лесенка" 3х3 - 3 сочетания. Итого 15 сочетаний. А слева в каждом из этих сочетаний сформированы числа от 00 до 11.(К-3 = 2) Слабо понял о чем речь. Меня другой вопрос интересует: в чем польза от этой красоты? Как это связано с расстановкой ферзей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2018, 15:03 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovИмеется несколько последовательностей чисел: 1,2,3, далее 1,2,3,4,5,6, далее 1,2,3,4,5,6,7,8,9, и т.д. Для каждой нужно найти все сочетания. При этом: В первой последовательности в одном сочетании не могут быть 1 и 2, во второй - 1 и 3, 2 и 4, 3 и 5, 4 и 6, в третьей - 1 и 4, 2 и 5, 3 и 6, 4 и 7, 5 и 8, 6 и 9 и т.д. Здесь видно, что существует некоторая прогрессия, которую можно распространить на последовательность, длиной 3 х К. Вот и все. Давайте опишем задачу в форате контестера. Test1 Input: Код: sql 1. 2. Output: Код: sql 1. Test2 Input: Код: sql 1. 2. Output: Код: sql 1. Верно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2018, 15:07 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Dima TСлабо понял о чем речь. Меня другой вопрос интересует: в чем польза от этой красоты? Как это связано с расстановкой ферзей?Процедура 21689747 , которая определяет сочетания "один из пары", уже включена в один из алгоритмов 21690219 . А красота в том, что в одном сочетании включены элементы двух других сочетаний. Жалко, что Вы не поняли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2018, 18:48 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Должно быть так: Test1 Input: Код: sql 1. 2. На самом деле, легко проглядывается зависимость второй строчки от первой строчки в виде формулы. Пока я эту формулу ещё не вывел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2018, 18:52 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov, А вывод какой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2018, 18:57 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Dima TСхематично вывод делается так Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Если я правильно понял, value & mask определяет значение (0 или 1) бита, определенного маской? А mask - позиция бита - 1, остальные 0? А while(mask != 0) означает, что сдвиг маски будет больше К (1 выйдет за границу К)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2018, 19:07 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
maytonGennadiy Usov, А вывод какой?Просто в одном из алгоритмов можно переставлять 3 (6, 9, ...., в зависимости от размера доски) вертикалей. Но если эти вертикали переставлять одновременно (те же сочетания), то появляется несовместимость некоторых вертикалей на одновременную перестановку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2018, 19:12 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovDima TСлабо понял о чем речь. Меня другой вопрос интересует: в чем польза от этой красоты? Как это связано с расстановкой ферзей?Процедура 21689747 , которая определяет сочетания "один из пары", уже включена в один из алгоритмов 21690219 . А красота в том, что в одном сочетании включены элементы двух других сочетаний. Жалко, что Вы не поняли. Алгоритм где-нибудь простыми словами описан? Заниматься реверс-инженерингом непонятного кода нет ни какого желания. PS напомнило анекдотВсплывает на дальнем востоке подводная лодка, американская. На берегу сидит чукча. Капитан подлодки спрашивает: - Как проплыть к Берингову проливу, а то у нас приборы сломались? Чукча отвечает: - Курс Зюйд-Зюйд-Вест. Tanks, сказал капитан подлодки, и она погрузилась в море. Через один час всплывает Русская подлодка. Русский (Р) Капитан подлодки спрашивает чукчу (Ч):. Р. - Ты не видел тут американскую подлодку? Ч. Видел. Р. Куда она поплыла? Ч. Курс Зюйд-Зюйд-Вест. Р. Ты не умничай, пальцем покажи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2018, 19:39 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovDima TСхематично вывод делается так Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Если я правильно понял, value & mask определяет значение (0 или 1) бита, определенного маской? А mask - позиция бита - 1, остальные 0? А while(mask != 0) означает, что сдвиг маски будет больше К (1 выйдет за границу К)? mask это 1 и К ноликов. После каждого сдвига на один нолик меньше. В итоге 1 уйдет и mask == 0 value & mask дает либо ноль либо mask если в этом разряде у value стоит 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2018, 19:42 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Dima TАлгоритм где-нибудь простыми словами описан? Заниматься реверс-инженерингом непонятного кода нет ни какого желания.Так Вы уже его читали. 21690386 плюс картинка 21689842 Так что не понятно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2018, 19:52 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovmaytonGennadiy Usov, А вывод какой?Просто в одном из алгоритмов можно переставлять 3 (6, 9, ...., в зависимости от размера доски) вертикалей. Но если эти вертикали переставлять одновременно (те же сочетания), то появляется несовместимость некоторых вертикалей на одновременную перестановку. Я вообще не это спрашивал. Если на вход этой волшебной функции подать цифры и ограничители которые я привёл. То что функция должна выдать на выход. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2018, 19:55 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
maytonЯ вообще не это спрашивал. Если на вход этой волшебной функции подать цифры и ограничители которые я привёл. То что функция должна выдать на выход.Если на входе 3(6,9,...) цифр и есть ограничения, то на выходе должны быть сочетания этих цифр, которые не противоречат ограничениям. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2018, 20:02 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Dima TGennadiy UsovЗдесь необходимо уточнение (или сравнение), так как пока путаюсь: - какое максимальное целое число в битах можно представить в компьютере; - какой максимальный размер массива Р можно представить в компьютере? Хочется сравнить эти числа, так как в дальнейшем идет разговор о больших досках (соседний топик).Любое число. Процессор оперирует 32 и 64 битными словами, но никто не мешает взять массив слов и логически рассматривать его как одно число. Операции сравнения (больше, меньше, равно) сделать элементарно для этого числа. Максимальный размер массива зависит от количества имеющейся памяти и размера элемента массива. Для простоты считай что возможен массив из 100 млн. элементов. В принципе без разницы как представлено число: массив слов (двоичное представление) или просто массив где один элемент один бит. Второй способ просто займет больше памяти и медленнее будет обратываться.Хорошо. Пример: доска 997х997, 249 квадратов ферзей. Как представить сочетания из 249 объектов? В битах, в массиве слов и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2018, 20:06 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovХорошо. Пример: доска 997х997, 249 квадратов ферзей. Как представить сочетания из 249 объектов? В битах, в массиве слов и т.д. Ничего хорошего. Я не понимаю почему 249 а не 997? В задаче на доску N*N надо выставить N ферзей. Непонятно на основании чего сделано упрощение. С другой стороны если упрощено до каких-то "квадратов ферзей", то это уже отдельная фигура со своим поведением. В общем я догадываюсь что выведены какие-то дополнительные правила, но эти правила нигде не озвучены. Про них и спрашиваю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2018, 20:19 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Dima TGennadiy UsovХорошо. Пример: доска 997х997, 249 квадратов ферзей. Как представить сочетания из 249 объектов? В битах, в массиве слов и т.д.Ничего хорошего. Я не понимаю почему 249 а не 997? В задаче на доску N*N надо выставить N ферзей. Непонятно на основании чего сделано упрощение. С другой стороны если упрощено до каких-то "квадратов ферзей", то это уже отдельная фигура со своим поведением. В общем я догадываюсь что выведены какие-то дополнительные правила, но эти правила нигде не озвучены. Про них и спрашиваю.Здесь ещё больше объяснять. Процедура, которая определяет квадраты ферзей, 21690219 . Но мы говорим не о ферзях, а о сочетаниях объектов. Объектов 249. Как быть с представлением сочетаний? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2018, 20:24 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovmaytonЯ вообще не это спрашивал. Если на вход этой волшебной функции подать цифры и ограничители которые я привёл. То что функция должна выдать на выход.Если на входе 3(6,9,...) цифр и есть ограничения, то на выходе должны быть сочетания этих цифр, которые не противоречат ограничениям. Я хотел узнать конкретное число(числа) для 123 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2018, 20:37 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
maytonGennadiy Usovпропущено... Если на входе 3(6,9,...) цифр и есть ограничения, то на выходе должны быть сочетания этих цифр, которые не противоречат ограничениям. Я хотел узнать конкретное число(числа) для 123100, 010, 001, 101 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2018, 20:52 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usovmaytonпропущено... Я хотел узнать конкретное число(числа) для 123100, 010, 001, 101 Аха... Тоесть будет так: Input: Код: sql 1. 2. Output: Код: sql 1. 2. 3. 4. Верно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2018, 21:41 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Хм.. мне вот не нравится ограничение в исключение пар. А если надо будет исключать тройки? Четверки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2018, 01:07 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Как-то так. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2018, 01:41 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Output Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2018, 01:42 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
maytonХм.. мне вот не нравится ограничение в исключение пар. А если надо будет исключать тройки? Четверки?В сообщении я попробовал составлять сочетания (второго уровня) из двух сочетаний (первого уровня). В данном случае одно из сочетаний первого уровня - "линейка". А Dima T меня не понял. Ранее я рассматривал задачу 123, 123456, и т.д. 21302076 21482003 . Попробую ещё раз объяснить мой метод решения этой задачи. В данной задаче интересно рассмотреть задачу объединения в одном сочетании 3-х сочетаний. Рассмотрим. Все объекты, которые участвуют в данной задаче, кратны 3: 3,6,9,12,…. Следовательно, в каждом случае можно разделить конкретную задачу на 3 участка: -для 3-х объектов: 1, 2, 3 -для 6-и объектов; 12, 34, 56 - для 9-и объектов: 123, 456, 789. и т.д. Можно выбирать сочетания для 1-го и 3-го участка и составлять объединенное сочетание (средний участок пока нули). Если теперь добавлять средний участок, то сравниваются на наличие 1 одинаковые колонки по номеру в 3-х участках. Если совпадают, то данное сочетание из среднего участка пропускается. Пока так на пальцах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2018, 07:17 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovmaytonХм.. мне вот не нравится ограничение в исключение пар. А если надо будет исключать тройки? Четверки?В сообщении я попробовал составлять сочетания (второго уровня) из двух сочетаний (первого уровня). В данном случае одно из сочетаний первого уровня - "линейка". А Dima T меня не понял. Я не понимаю что такое "уровни". Объясни. Ты не забывай что здесь - айтишники. Не математики. Нам сложно искать смыслы в художественных словах и эпитетах. Лучший вариант донести алгоритм - это привести код который всем понятен. И подкрепить примером в формате Input/Output как я писал выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2018, 10:21 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovDima Tпропущено... Почему?Здесь необходимо уточнение (или сравнение), так как пока путаюсь: - какое максимальное целое число в битах можно представить в компьютере; Возможно отвечали. Я просто добавлю. Не надо ставить так вопрос. Любое число можно представить на которое хватит памяти. Но это не означает что вы с этим мега-числом сможете эффективно работать. Программирование - это постоянная инженерия возможностей - CPU (регистры)/Memory - Язык и компиллятор и типы данных - Библиотеки Мы всегда ищем компромиссы. Как бы сделать задачу. На базовых регистрах CPU (32/64). На расширенных. На языковых типах данных. На библиотеках. Поэтому не бывает такого вопроса. От задачи надо идти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2018, 10:36 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov- какой максимальный размер массива Р можно представить в компьютере? Хочется сравнить эти числа, так как в дальнейшем идет разговор о больших досках (соседний топик). Уже почти ответил выше. Практически размер массива будет ограничен вашей памятью ПК. Можно и больше. Но в этом случае мы задействуем диск со всеми вытекающими. Сравнение двух сверх-больших чисел - это задача класса линейной вычислительной сложности. Тоесть чем длиннее числа тем медленнее они будут сравниваться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2018, 10:40 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Dima TСхематично вывод делается так Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Тогда можно будет определить все сочетания для К объектов.Так? Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Есть одно сомнение: для число 1 в массиве Р "1" находится в начале массива или в конце? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2018, 19:47 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Что-то я намудрил в предыдущем сообщении. Теперь кажется верно: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2018, 13:40 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovЧто-то я намудрил в предыдущем сообщении. Теперь кажется верно: Тут тоже намудрил, это надо внутрь цикла, иначе он будет бесконечный Код: sql 1. И это под вопросом: Код: sql 1. value & mask дает или 0, или mask, выше ты 0 и 1 использовал, не знаю важно ли это для твоей задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2018, 16:33 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Dima TТут тоже намудрил, это надо внутрь цикла, иначе он будет бесконечный Код: sql 1. И это под вопросом: Код: sql 1. value & mask дает или 0, или mask, выше ты 0 и 1 использовал, не знаю важно ли это для твоей задачи.Спасибо! Понял. Теперь так? Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2018, 16:55 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
В сообщениях 21696995 и 21697400 представлена программа по поиску всех сочетаний К чисел. Однако, если величина К окажется слишком большой, например, 200, 250, то в программе появляются большие числа: 2^200, 2^250, что приводит к необходимости вводить дополнительные программы для работы с такими большими числами. В сообщениях 21697951 и 21698205 высказана мысль о переходе в программах, где есть большие числа, на другие числа, например, на величину степени 2 таких чисел. Однако выше указанная программа, которая основывается на программе 21690391 , предполагает разложение чисел вида 2^200 на отдельные биты, что не позволяет избавиться от больших чисел. Поэтому попробуем представить другую программу поиска сочетаний без использования больших чисел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2018, 16:11 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
А в этой программе не требуется использовать большие числа: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Так что, получаем все сочетания. Где-то помогла картинка 21281836 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2018, 20:42 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov, Так и не смог избавится от go to? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2018, 20:48 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
maytonGennadiy Usov, Так и не смог избавится от go to? mayton, он только учится программировать, пока хоть так, потом почитает правила хорошего тона. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2018, 21:03 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
maytonGennadiy Usov, Так и не смог избавится от go to?Пока не вижу альтернативы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2018, 21:10 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovmaytonGennadiy Usov, Так и не смог избавится от go to?Пока не вижу альтернативы Альтернатива это цикл и break Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Но в этом коде есть ошибка: i1 может выйти за пределы размера массива P[], поэтому лучше так Код: javascript 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2018, 07:54 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Спасибо за 2 варианта программ! Dima TНо в этом коде есть ошибка: i1 может выйти за пределы размера массива P[], поэтому лучше так Код: javascript 1. 2. 3. 4. 5. 6. 7. Данный вариант очень интересен с точки зрения упрощения программы. Однако, все сочетания определяются в некотором цикле от 1 до ..... Процедура SOCHET3 будет в этом цикле. Последним сочетанием должно быть 1111111111 и т.д. А цикл будет работать дальше. Поэтому необходимо ввести ячейку P[К+1]. И пусть i1 выходит за пределы размера массива P[К], где мы 1 отловим в ячейке P[К+1]. Поэтому мне очень понравился 1-ый вариант. Никогда не работал со значениями true, поэтому спасибо за учение. Кстати, true можно применить и в оболочке над SOCHET3 Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2018, 15:00 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovОднако, все сочетания определяются в некотором цикле от 1 до ..... Процедура SOCHET3 будет в этом цикле. Последним сочетанием должно быть 1111111111 и т.д. А цикл будет работать дальше. Поэтому необходимо ввести ячейку P[К+1]. И пусть i1 выходит за пределы размера массива P[К], где мы 1 отловим в ячейке P[К+1] Вот мы уже плавно подошли к теме обработки ошибок. Отлавливать ошибку в P[К+1] не самый красивый способ. Лучше выбрать какое-то правило для обработки ошибок и его использовать. Например функция возвращает true в случае успешного выполнения. В этом случае можно так Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. тогда вывод можно будет переписать так Код: javascript 1. 2. 3. 4. PS Советую сделать паузу и прочитать какую-нибудь книгу по основам программирования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2018, 15:22 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Dima T Например функция возвращает true в случае успешного выполнения. В этом случае можно так Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. тогда вывод можно будет переписать так Код: javascript 1. 2. 3. 4. PS Советую сделать паузу и прочитать какую-нибудь книгу по основам программирования.Пока некогда делать паузу. Надо подвести некоторую черту. Что мы имеем: - вариант программы определения сочетаний для большого числа К 21699386 (на основании картинок 21281836 ); - вариант программы определения сочетаний для небольшого числа К 21696770 21697400 с использованием идеи 21690391 . Кому что нравится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2018, 15:54 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Что от нас требуется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2018, 18:32 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
maytonЧто от нас требуется?Да ничего ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2018, 19:33 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovНадо подвести некоторую черту. Что мы имеем: - вариант программы определения сочетаний для большого числа К 21699386 (на основании картинок 21281836 ); - вариант программы определения сочетаний для небольшого числа К 21696770 21697400 с использованием идеи 21690391 .В первом варианте, как правило, перебираются "1" только в части двоичного вида числа, определяющего сочетание. Во втором варианте маски перебирают все элементы двоичного вида числа, определяющего сочетание. В первом варианте можно значительно уменьшить количество переборов, если массив P[K] разделим на несколько частей, и "работаем" отдельно с каждой частью. Например, число К делится на 3. Тогда получаем программу (используем вариант 21699436 , предложенный Dima T): Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2018, 19:37 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
В предыдущем сообщении массив P[K] был разделе на 3 равные части , и в каждой его части искались свои сочетания, а потом все эти сочетания совмещались в одно сочетание. Оказывается, такое разделение (произвольное) можно сделать для любого массива P[K]. Таким образом, можно уйти от больших чисел. Например, надо найти сочетания для 100 чисел. Делим массив P[100] на 4 части, например, 15, 35, 27, 23. Тогда, используя результаты сообщения 21702893 , получаем программу поиска сочетаний для 100 чисел: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. Правда, первое сочетание будет состоять из одних 0, но пока от этого не удаётся избавиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2018, 12:54 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Этот кусок кода имеет рекурсивную природу. Убежден что его можно переписать на более компактный вид. Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2018, 17:54 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
maytonЭтот кусок кода имеет рекурсивную природу. Убежден что его можно переписать на более компактный вид.Возможно. Однако, не всегда в таких программах будет одна и та же процедура. Весь смысл такой разбивки не только в том, чтобы уйти от больших чисел. Могут быть процедуры, которые будут решать специальные задачи на отдельных участках массива P[K]. Например, сравнение с другими участками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2018, 18:56 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
А теперь можно вернуться к одной из задач по специальным сочетаниям: 21283022 «Имеется несколько последовательностей чисел: 1,2,3, далее 1,2,3,4,5,6, далее 1,2,3,4,5,6,7,8,9, и т.д. Для каждой нужно найти все сочетания. При этом: В первой последовательности в одном сочетании не могут быть 1 и 2, 2 и 3, во второй - 1 и 3, 2 и 4, 3 и 5, 4 и 6, в третьей - 1 и 4, 2 и 5, 3 и 6, 4 и 7, 5 и 8, 6 и 9 и т.д. Здесь видно, что существует некоторая прогрессия, которую можно распространить на последовательность, длиной 3 х К. Вот и все.» Можно взять программу 21702893 и добавить к ней процедуру SOCHET5, которая сравнивает значения «1» в 3-х разделах массива P[K]. Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2018, 06:50 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Обычно цикл WHILE имеет обязывает программиста реализовать следующий паттерн: Код: java 1. 2. 3. 4. 5. Если вы опускаете итерационное выражение то рискуете получить бесконечный цикл. Теоретически это выражение может быть инкапсулировано в функцию условия но в вашем случае - есть сомнения что это реализовано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2018, 16:24 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
mayton, 21699386 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2018, 17:01 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Dima T, вы тестировали это? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2018, 17:04 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Может оно и работает. ХЗ. Но эти функции с глобальным состоянием. Это ... unsupportable. Зачем так вообще делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2018, 17:25 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
maytonМожет оно и работает. Зачем так вообще делать?Ранее было сообщение 21699436 , что имеется 2 варианта программы определения сочетаний. Можно применить вместо процедуры работы с массивом процедуру работу с масками для битовых операторов. Представьте на минуту, что надо найти сочетания для 200 чисел. Есть такой вариант для одного из алгоритмов для доски 1000х1000. Ячейка вмещает около 1,1259E+15. Если перевести в двоичные, то это 2^50. Теперь разбиваем массив P[200] на 4 части по 50, и можно применить какую-нибудь процедуру SOCHET6, в которой вместо работы с массивов применяется работа с масками. А далее 4 цикла, как в 21703238 . И никаких проблем с длинными числами. Кстати, работа с кусками массива P[K] позволяет, если необходимо, "поплотнее" поработать с одним из участком массива P[K]. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2018, 19:02 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
maytonDima T, вы тестировали это? Конкретно это 21699386 обычный двоичный счетчик на K разрядов, вернет false при переполнении. Проходили на микросхемотехнике, такое не забудешь ))) maytonМожет оно и работает. ХЗ. Но эти функции с глобальным состоянием. Глобального состояния там нет, состояние в параметрах передается. Написано в процедурном стиле. maytonЭто ... unsupportable. Зачем так вообще делать? Тут все unsupportable. Я только небольшой рефакторинг предложил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2018, 20:04 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovИ никаких проблем с длинными числами. Их и не было. Была проблема с длинным временем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2018, 10:09 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Aleksandr SharahovGennadiy UsovИ никаких проблем с длинными числами.Их и не было. Была проблема с длинным временем.А какое самое большое целое число Вы использовали в программах задачи N ферзей при арифметических операциях? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2018, 12:53 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovAleksandr Sharahovпропущено... Их и не было. Была проблема с длинным временем.А какое самое большое целое число Вы использовали в программах задачи N ферзей при арифметических операциях? Для счетчиков достаточно типа int64 - не должны переполниться, пока я на них смотрю. Для вычислительных задач выбираемый тип (или способ представления) результата зависит от алгоритма. Важно: тут первичен алгоритм. Тип результата выбирается под него. Пока у вас нет алгоритма, о типе результата можно не беспокоиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2018, 13:06 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Aleksandr SharahovGennadiy UsovА какое самое большое целое число Вы использовали в программах задачи N ферзей при арифметических операциях?Для счетчиков достаточно типа int64 - не должны переполниться, пока я на них смотрю. Для вычислительных задач выбираемый тип (или способ представления) результата зависит от алгоритма. Важно: тут первичен алгоритм. Тип результата выбирается под него. Пока у вас нет алгоритма, о типе результата можно не беспокоиться. Значит, не работали с числами, большими int64. А говорите, что проблем с большими числами нет. Неувязочка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2018, 13:14 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovAleksandr Sharahovпропущено... Для счетчиков достаточно типа int64 - не должны переполниться, пока я на них смотрю. Для вычислительных задач выбираемый тип (или способ представления) результата зависит от алгоритма. Важно: тут первичен алгоритм. Тип результата выбирается под него. Пока у вас нет алгоритма, о типе результата можно не беспокоиться. Значит, не работали с числами, большими int64. А говорите, что проблем с большими числами нет. Неувязочка. давно хотел спросить, вы русский язык хорошо понимаете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2018, 13:16 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Aleksandr SharahovGennadiy Usov Значит, не работали с числами, большими int64. А говорите, что проблем с большими числами нет. Неувязочка.давно хотел спросить, вы русский язык хорошо понимаете?Так Вы же не ответили на мой вопрос о работе с большими числами! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2018, 13:18 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov, вы совсем не допускаете мысль, что могли не заметить ответа в моем сообщении? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2018, 13:25 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Aleksandr SharahovGennadiy Usov, вы совсем не допускаете мысль, что могли не заметить ответа в моем сообщении?Aleksandr Sharahov, вы совсем не допускаете мысль, что я вам ответил по-русски? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2018, 13:27 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovAleksandr Sharahovпропущено... давно хотел спросить, вы русский язык хорошо понимаете?Так Вы же не ответили на мой вопрос о работе с большими числами! Александр вам не ответил. Потому-что сам по себе вопрос лишен смысла. Современные библиотеки и типы данных могут поддержать числа любой разрядности. Но пропорционально вы потеряете память. И потеряете время линейно для операций сложений-вычитаний и квадратично для умножений и т.д. Современное программирование для науки и техники использует double. Финансовое - числа символьной точности до 38 двоично-десятичных разрядов. Криптография (теоретически) использует int64 используется много и плотно для внутреннего представления указателя памяти. И int128 используется во всех современных файловых системах для внутренних расчетов смещений. Более длинные целые 256/512/1024 и т.д используются в криптографии (и там это обосновано). То что вы спрашиваете о максимальной длине лишено по большему счету смысла. Это меряние хоботами. Никто из нас в здравом рассудке не станет применять в программировании сверх-числа "просто-так" или из амбиций. Нужно исходить из потребностей алгоритма. И поставить вопрос так. Зачем алгоритму оперировать сверх-длинными целыми числами? Есть ли строгое обоснование? Кроме желания просто посмотреть глазами на это число. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2018, 13:37 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
maytonНужно исходить из потребностей алгоритма. И поставить вопрос так. Зачем алгоритму оперировать сверх-длинными целыми числами? Есть ли строгое обоснование? Кроме желания просто посмотреть глазами на это число.В сообщении 21703686 было сказано, зачем это нужно. Потому что по ходу работы алгоритма, например, на доске 1000х1000, появляются число вида 2^200. Я попытался от этих чисел уйти за счет разбивки массива P[K]. И тогда я работаю с обычными числами int64 и с масками для них.mayton Более длинные целые 256/512/1024 и т.д используются в криптографии (и там это обосновано).Следовательно, в этих случаях применяются дополнительные специальные программы. Я от этих специальных программ ухожу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2018, 13:54 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov, вам же предлагали уже python общего назначения. Поставьте его и вычисляйте: Код: python 1. 89067273653340927323517259932354619871558825103436606716706453781843763534415748 12965213416152925263199662391673697765933464203777998083007139715736799813496437 41400204028253349032666883642470869082222942916093938419222455091242836462074821 64386026661717449970658566073460848199161736489843799333191713085182395564042704 01690044754449283601331379324615672913823080930697705982904511229994638319021461 33864071358165526567741960022949724630408293146248058570630262301141836262256770 32258735473548356179546623643347470660070077465003021865213363678295064310563824 69828116926061298942974551572328495067058331823937715768276354423445179866769513 40261801005021385997739586579167309674886578472241839175666028486397213554543444 78621060751878086538548783792663360579391258173969792675553045587717825138174049 39607307776166817386953995704957642552250086576077461721086382444742917912705333 50311452759713456483766553934984261335921505205908882625783394059522845613335732 47258654432980174433788543734035435356340698291972143766256342296090163012396905 23800194866611908931741982414736841903119847837392292121374026777918206082606804 95557625044903772085770734006589988799754023366598834387753412461227655109783711 94575396301234163661586829266118998856839620566234920593319020715976524847302996 49374027722927001638604994655408549444337242420021297008165232062378031597698159 50789009708342295148850153146109863114600464670205768777292310897068464032666411 32353677342030535043596409846994934904901607558506049335904644145260092001105446 41247508771880060935268337908562506204502137940847890700956304791886967768256941 15958246890052164501544524798670610404183416497452690110533758878518336716901736 33056179408807650253129677322911032855004278444996823459556036812287454241779365 35925157097794709201443295093205846912242588436062424685730089694907674138222690 79190881923458681564941651072166238865805337579597870991622766098584410686979830 40847869928658821909480547246984023665532994322147639321494854052137535861771902 86034787820685769625092546331786500033667140019657145510823185319879820703974259 94180747511612544083261153007619843991139798395834137110370911543397730547842948 54668811767472300937781014552924092875711797994119548699967617671238995718318966 07467563150574986416188281424361989030799327681785578936910749665233732884889979 05763164171986764062940900337893879680549927049640784247721300782089273533673807 08465769205367003891974379700980598224759128350161036527158969973775119792782542 78501446910692678966792795081662952083790941084161248067923290760481965771567065 62427541897789795298059696747068981572085509334358213526865029578611560073782979 56240239961860449506916198746831054751240446081083680945067162662807671725238542 84171927451592942087371733739482546787054858855421361297392483983220336662068391 21940731101764837946767768579996906231439350738345932011096375389776150743458726 01845472679388741789090961267064309948055231141247399989118203527877879360469279 60050331963308066026244048409828230579941672892681617691052614908440452732604108 54655827091760126969981643925784671342963519076784639829144917127400963479715396 86657612994562388790066789653877896891764216403868468202288868897866505274533790 27852616475784367646768083775045285224386400451812981371206041787628248576165614 48530004155757923612176117703637399832543008356800496813209444643126633041702826 52157415253838184419886932925696407783281010048808372415712357066455838206941412 65741479744842662532346726845792929590467843650848387368813159842971908206923273 86965959316215418940348757470140830081558384825014231955272387857749802880593404 81135416271904854581036735957705021299202376401224766265791088383678307447968442 74704776516578880829922868833072416246076721182016501772831501661690078156609199 13928328369763912880792190745665252269663440094918600826138680628648594626040055 06448211794563004398683897034107000491130632316639348508075973701222558475673142 86975570796543244020261951669720675103134031047228323184496517894110900436633077 05237069400727704898273534649955698623269236847624442952390778102319898528297681 39310244030535071273790197689467112824749747608577335390491416119479041022164339 24302674954916959037370011330076368026832294893054226081642160117178738072050221 58169230109073466433959203906331410530614423653934220474243028250319235963605974 51369889942740596387823370768875334499043125609533137203131629019720428703685775 78582246920427656429113481422857281126067996376355229411874775087710611270172243 73142154554813247935630589790149144191781786110946045115617930131899311847941063 36625911312097408077109837441018785038493991931649911485097720182810300422528781 50161635231733409587069112031597700306994950652774748773072530186135903244796776 81713083143063252906790529671784237623983265559553245758013200875546726365923957 48699185624468917570471918418880913111968183739668561160706347187390510139242812 73403332438611630927599192954827217355603756707895377376769645621098383265139182 90887095667768906227048042951114452332377331376517078314171181532401866207823267 67577017445092763909673688642171325831689463665015698586352406307995326762677815 58122358807535369369867622789042396202560217765223093689977660945132387123435195 46237140498782904232546001389159797252795681535247142650942160320178535864896986 36470655044848899026785662984951983655456105695219038712316669734532260560746214 00351208152742490868793959531792503296871983171301439113160939600293025766571642 53847735734821621276295408995313996131566040968531368126621615897120904209464498 31323272808342730450459510280601189008088302927524285110062762509440828355831999 12430317285478162499743411119186414814294321299331406966415722436419215830653719 70396011178488356801256654675046507600112267489637575902635155838038788338990201 11571767072522273262124753623904483113916916943203350050704349679809633306761229 08254591770388228371064139620742842280867525591571746532373162830017756889317309 75798934075869455274085853540238288368100170343931312858754348140127046118156219 81049749734291702233814719727553125611446883328824658564279388519817460219700229 47910180489666257936404954393715769108847745503473876651607461346445184455903584 84361362900786926648731410523916520949129490089225229806575737309380054375970498 57184019881575545686092910746232839831299803181990818928907766255906029474525397 73402995139594144363324115578905772451138288327493081272556410659794512579513805 98144420159917901110442250978552170982267534015566289317382412669524133472890884 73672949961921834571548775538266806022558021020863404895977831221312390434791428 51871327002513560885817900520507493371837398488449686738468339583556739937827331 22990807447975819059189127325242598912449154492646356245678325970112669209384613 96713743137676565384490902187229200282340988745778560729201634071887010363861281 00230965367267004023625386406751926687410834871075526336185533166572694708950537 15144147777357841015883109890592077923286237686063929700012931794297973774297238 74874349353213079124937260843284484730887882710758296790208436247134454151693596 61777892845483664298746653402888075968734338617048611660503005589293139915504213 48673271962690020175829392987667806365389692446169868493813209119529891886887200 57950451869726849256697373148074991832485637342845160334449767045692121185588967 04972876209480771138133625380875883795712240987288245013430641258558465714141806 31400484639675507546151111041158534195373123026871724182799256086598394209420484 81059407556849889405747142747166579504343087525241236301337290609522155633067944 47773862705570296967246806599345767910343581857807095081077893850041387595268624 66173146763421905001420513588355310197625645233239193759857437461256642187754061 84786374899220809357342976045269983518613864102069383155422921160116295421627130 76886749595210229531974682974270114338596977741419432730164764323621185123535228 70310167976682755194199930133594146362057897037548135004758558616013646987761011 00293280874338021025935613833372059699953081078310642472307386735459620193638500 91339162979872156450512056634785573000397230081096155444389372865419362014782682 90961055917641474496178584323297510777268561520435736033227098192607479791435258 75557749875371212079212676055874722035927259808363977277901606301382651307426995 07765222044061755452477599161541090629102448111932547366018855779639456037183359 16237963421242210510401012251339289865804301188367529308079990113873677336324038 22648932724164724842236314846341271955076525872507025460051134319927963739684002 66248227943691455569932906486747433446083954873606888044622282845277332135490045 70968548735248691390876092140574278724234732013494768055065135972371282728589084 52798394055624162923904240570904109322356389702015125413026055638586225117218819 85475572431616045403642523569599508322199738440364801763358437135258799602280800 49121546749085361448512038450131595329001210933843405155385063559165274548128791 32208362532512397370123090130729768379648549545284328637051975955642502836202545 43897147542836432566463420933666052999797220740743325439324829527217451647774447 58286171480711534460593642805113577888571344441130482323490927143258719687957020 89892299478432227347771678296075525232978125260914465976505818522314570463843100 85825974903495443254945321601202252686408754402845811239346008695239924251066807 37338676423907949964903698326766349931651024680814884606877909766628435785851667 39232904995526401471780939803980972351866302665794990864633178219348377722026536 62222029278155812315450660632749824140342533858222851806007041131279050042187621 58090964574129002466866083780264490500100715220566026842013397416346791530749080 97127062686005432613527952078360261507300644327192841283212305483877973455199029 53421260769632629011818963024675066865306592263508899486520900450483942996706878 52041504831481771620866399100507314828740006042473048017664928764707237328009100 90768454381373294239715981532551983197858030532812689916782278373782363603482561 76294360261928219233766950700693709851040566528370565345893357084790242778372745 37010385936942745594007489473032800444675727133491752710935711981535105618870991 40013963086945664959965974479753987622073758864338537118121223172013747286684495 48911170564037623287135734034213563171313190143638197150334495747655610296018316 32458263092678850557961269415916692420994993913082254801575567155637837301716321 13375935284566564922674462078594470214267787821486526795266547672458881357121504 92712567684990946302091972721710171734716771881715251789342552434856815150721002 94401908303026408636596125509071237145563688026808919488871887761347096629835957 32625766323119725658560193829678086016282442053810808134248134113243415424846240 31032439879763035628990707298906760378846959710939162159046209362907204893563649 19045360729717220287976899650190914008604185200179172521007300206067137783819950 74625621023613214360849487773008922100730616930805949257092738761488395078594503 47500627558679290026185973287760013956180465985966490809712632281541417662477875 73004832654046320985896537892707355615844544679204113021090698230900434782888310 63422725181826287559943767006080287638261960586892402217404451950147237288753734 14759464648542955911912573962294861347161091075494437328458241568739444020311940 49387746122201206675463426218381497481202382567936371455901734086646472811743136 36184502705368709476244900966367715916761019677361044247483642579297847814035674 78100611645388494344243111573115207359684425935104848752508403942244302212510866 80875965246900470488616602581446182469835965475213170681743465075384364206336293 40016690757352707474269753995031126042745684042937325468366362853525800330698311 14950167780266141614742837513605687206305650159222409793458407047214545205627906 24394678038131808575383537610237194699062674412575234596746970487060133624517538 95093625568332525425792885285719293598748311663642481405988859808568567842846778 14903644103970325227399314171927397755013594143673692773386740674222140445129849 13157302560375030372018543267164880010051729550526707673038111669481295555535597 04665780898799659162564501672552881510088873439723846403790119441248954526966582 75472393327356601353729730458625741848327375604605686847265108204674751386718708 81213969771140527564064185177144833639973027082033868281481895204219986322520709 44850691747504046803900554128597007377044204309606184910776865533555447969243510 50308353664329479197855064288487839786401493522716121483344706334053056835541440 96293295863701610856772184506849256003909240892140429047753075154832862196283664 12664520449981489917836218675616363070049463905278871961793933107963976849537837 41616888980369378972295875260819305271492109299920231484451449256617480340247743 07856140026475082690835665499963900723090641268721683899455023822968443618524046 22124602024105414714397504352013938945504562473799267639742723998823673688977330 09344975836396918334114396799572481115269254007304384079064413314175956122383828 11678001961607065765583929863960845927504006602758921148954125731914935275302778 59352407442437446005734705977816179652501686380834101696270705905788079129646939 98249319604028562741288930194521927967359689241607832379606856386568683827029923 30948918204892239435616948786221222109008230573933851360970612671947177183245984 91605226964952947427332735821010958032709957602756963119376988403235824771716525 13171099629280734620134455875755026833637230796151078656979561314584789655992743 10654900835440682558036687738813325799593683790853331997660744869114569756649021 31376632257208567477692424285336327621883257478683756245679919461823652469132373 04997170483169887969873425982932370037857602462843448829017629026728238311275805 27466893252178864873354845523382706768748423861046595338314710825093338823783896 68181102390016139583588416521933652435081765709853200683344491666045089228055314 94396876752359903644461239459794284225659938590692789246861509533059075604893446 54837230086183790099343114195901318240743123781739223144888501176403308750191679 82835036776727886936445645061124425929746262706481399959067891899078269501062252 89545975880719774894214355585035234498500872347768396387866509855726373847225197 22673130262409261477297220236920370295019894870565697770003871215031299073616144 27813555849725926917874979686403279656280897697086943284832099706573616740056776 56254005107584012915044024526046978106475653238297013319786586349339201949771247 50855532946254979794776478705784742133049099086051775861194957866942599005140170 68201393835262491358114670659870309348117623305761397608939140886716397964582942 07402142064166918851572869168329989468553333569985045162618557264711871422299260 58956741805800630292880596626067981598098631926586889679695518307383133367099795 31027100382725566103165003290543624491008887958224501777955227195713616135186389 59383839196720051645997055264392015676605611375651861930125264136459699669435156 36083820286133648581143664727370038034882599911370655651540526022875422150676597 66194245368742380404116243034634210120990526849144152660633667511317795831369739 43271956513685447277269799961079722421061441943365553271580837308981774192808518 51890380268039126610704795247100822809928220341558083212381861103891414021356229 66961020010831630942863716766399632216169218032748565005984932163031385295823791 96687377772219740071587698068186300324777074535438514194745490150853192081418549 44603894633816817359559747968684348788064195862771694333489043053709114891808801 72477859588452705576526013923405304199519008770869591686381460651540481278503220 32534321049318012409740754885448487011891888340727456063156080088755953007006038 33293080572355355892650934081264014700264077488952037391672397340498290580494422 45225255168149342039618386929579801213383078397932125748570998074144916858434008 55524390546779702676672871242231853571411280947004638503671651126821085257496292 27770793887656595349015006663905860157031038152907875240747461757540674106532840 75273431037726065836727248139017782426053251204009291992654775805268150523619825 34430732411751418256388007929553494121607019103759525586067889792245637626441032 11290722239523849476214950353838418027978450507439741666839155424105552895452284 14497087062002274958798969717048534535558574800488376264355501097041024809972412 64156293341904992109536345686802647386727991866007577351334676072280858807156937 38708289211038259893891880529150319339913248811816047616724744454127072570192049 95083883278942608366558487642821972248979761723924896764296665948177118422707759 39765078289537575529418508465514770207492969914507537477980139682297325932270821 11552255127526004055863443347598356281118429748015962866112609092351586398022777 82022821013699474641279368130324310188614477551420957560119209433272302350722608 25015736197238270964876479850274752365751022870918785875957074495541913853189904 10237727876734939291455706947489816533418472537614615648948039877798722087687391 31294932545215417560563546199606030336151875218192671489806272722950564343322105 24611114956140227798074318736270233330699405036712190623526829554668852176810344 54245333520457165102189707058635903635476148494677017820362372352097756702920896 81675079250252907090868336086388215050638921974507889668422723948048402908787637 14916221828198123741792478652569825750459886934428314411633187977964483452429862 42852779498932431628067172565317574400643138712273148481035200383603653633861334 33702608198383395237198851318671181013258581684526418897635149033510646568096573 10024090470506118865181390538929532646377957388558016735083334955515542137291208 95010583482712754259399856701252376690998164751346183812428909905571353525906020 40924583371823504760983832960400315885835439957734511375764136796448261241467264 31095219443355377069559214639672743365129426974097885310773969196358146992017798 12984189758315741773392080359648679812569244805778784320717386575146076385874445 98961085365247825921355240267184910377329301935312357557025269343972569081150853 95753477189624783708234172639710087402533662707002327873216452109751129932585147 74846077532053941234736700777430383208972558783732115632858787961374037344984187 98582584443689912838400794258252182402457804038215495624120589406633904492083746 39727840918627241169634116456990002086743697234271743873643800569015665921677450 05190869898100457345271436995697918265062478216008008698530283503150878822030996 06650309161464831372771060274049620366564726082094411343316196503690168012331678 27365264348221608829792419663767433662474748030256841809485626625264217058243715 84617521890175224753147004124410985502897047520498868089688500917635504831582768 98280023858657651967155548220643466390401870715205507687240542627321527705792845 97059070854495577425696937230617528743254898259529154665491375472899056410316244 79006921110927613111388507985505575752071241731804492444103733484106910218020422 54435577890209567493350017863942246923463399353587746005717072353358963184052864 63935892999315500347902728978124275910841408052780287701520634430199516411790353 90042804771626914434826393106819616391045880214049463911159841177852861616285012 20087792795633828177336075261413664912293233995008625627778034361851244363845411 28537525587798348127021265575274546665920702359951774618007599836406935668244059 61557559747556853989442594017567489710862956135070895837213033626783802224127777 95444060673809679858440326717515289844084753353428345919276682294524095705442745 37889391969836701085282934312820921197710216808638491339334194584326746951981657 20601917965850906127989939926348375509553515716587942054952167827042243578419589 59544391981029312684912021595958260074662540535545369698003482456337450077119313 25731713500118460269689689622991039437077479424L ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2018, 14:07 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Ы2Gennadiy Usov, вам же предлагали уже python общего назначения. Поставьте его и вычисляйте:Пока я работаю в JavaScript. Добавлять туда ещё python? А это и есть дополнитеьная программа. Пока не хочется добавлять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2018, 14:14 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov, в своей книге Йодан приводит занимательный пример. Во время занятий по структурному проектированию ему встречались группы программистов, которые не могли продолжить проектирование системы до тех пор, пока они окончательно не поймут, что именно внутри себя делает второстепенный модуль ОЦЕНКАПАРАМЕТРОВ, даже если его напишет кто-то другой вместо них. Разумеется, ни к кому из присутствующих этот пример не относится. Но все же, Геннадий, представьте, что вы повелитель длинных чисел и можете делать с ними все, что захотите: хранить, складывать, умножать и т.д. В этих условиях вы готовы написать свой алгоритм, использующий длинные числа, или опять что-то мешает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2018, 15:45 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Aleksandr SharahovРазумеется, ни к кому из присутствующих этот пример не относится. Но все же, Геннадий, представьте, что вы повелитель длинных чисел и можете делать с ними все, что захотите: хранить, складывать, умножать и т.д. В этих условиях вы готовы написать свой алгоритм, использующий длинные числа, или опять что-то мешает?На самом деле всё не так. Всё наоборот. Зная что при работе алгоритма будут длинные числа, я "убегаю" от них, используя вместо одного длинного числа несколько коротких чисел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2018, 15:57 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovAleksandr SharahovРазумеется, ни к кому из присутствующих этот пример не относится. Но все же, Геннадий, представьте, что вы повелитель длинных чисел и можете делать с ними все, что захотите: хранить, складывать, умножать и т.д. В этих условиях вы готовы написать свой алгоритм, использующий длинные числа, или опять что-то мешает?На самом деле всё не так. Всё наоборот. Зная что при работе алгоритма будут длинные числа, я "убегаю" от них, используя вместо одного длинного числа несколько коротких чисел. Ваше убегание - всего лишь один из способов представления длинных чисел. Не засоряйте алгоритм ненужными подробностями. Просто используйте любой удобный вам целочисленный тип, считайте что надо вычислить результат по модулю 2^32 или 2^64. Сам алгоритм напишите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2018, 16:06 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Aleksandr SharahovGennadiy UsovНа самом деле всё не так. Всё наоборот. Зная что при работе алгоритма будут длинные числа, я "убегаю" от них, используя вместо одного длинного числа несколько коротких чисел.Ваше убегание - всего лишь один из способов представления длинных чисел. Не засоряйте алгоритм ненужными подробностями. Просто используйте любой удобный вам целочисленный тип, считайте что надо вычислить результат по модулю 2^32 или 2^64. Сам алгоритм напишите.Алгоритмы написаны: 21703514 и 21703238 с учетом 21703339 . Я не ищу длинные числа. Я ищу сочетания, которые определяет множество длинных чисел от 1 до 2^K. Например: 21690391 . В частности, найти все сочетания 200 чисел. (2^200). Сочетания из 200 чисел можно "собрать" из "суммы" сочетаний: 20 чисел + 30 чисел + 23 числа + 27 чисел + 17 чисел + 33 числа + 19 чисел + 31 число. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2018, 16:44 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov, допустим, у меня есть магическая функция, которая может найти все нужные вам сочетания. У вас есть алгоритм, который будет ее использовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2018, 16:52 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Aleksandr SharahovGennadiy Usov, допустим, у меня есть магическая функция, которая может найти все нужные вам сочетания. У вас есть алгоритм, который будет ее использовать?Конечно есть: 21690219 или 21693196 . Для доски 997х997 имеется 2^249 сочетаний. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2018, 17:01 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov, Как я понимаю, это переборные алгоритмы, которые генерируют решения на базе модулярных решений, которые тоже еще надо найти перебором. По существу, это почти ничего не дает. Например, кусок из 21690219 Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2018, 17:17 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Aleksandr Sharahov, Так как мы обсуждаем один из алгоритмов задачи N ферзей, то лучше это обсуждать на другом топике. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2018, 19:02 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
В сообщении 21699386 была рассмотрен код поиска всех сочетаний чисел в случае, когда числа имеют два значения 0 или 1. Попробуем этот код переделать, чтобы искать все сочетания для чисел, которые могут иметь значения от 1 до М. Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Всего сочетаний будет М^К. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2018, 07:14 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Тогда поиск сочетаний К чисел, которые могут принимать значения либо 0, либо 1, будет частным случаем поиска сочетаний К чисел (значения от 1 до М). В этом случае будут два значения: 1 и 2. Это даже удобно для последующей работы с точки зрения нумерации объектов, для которых ищутся сочетания. При двух значениях К чисел количество сочетаний будет 2^К. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2018, 13:51 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Есть ещё одна задача. Необходимо найти сочетания для М чисел из общего количества N чисел. Каждое число из М чисел может принимать значение либо 1, либо 2. Конечно, можно составить ещё один массив из М чисел, а затем провести соответствие между этим массивом и масивом P[N]. Однако можно всё сделать в одном массиве, если для этих чисел в массиве P[N] будут значения 0. Тогда имеем код для этого варианта сочетаний: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2018, 13:34 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovAleksandr SharahovGennadiy Usov, допустим, у меня есть магическая функция, которая может найти все нужные вам сочетания. У вас есть алгоритм, который будет ее использовать?Конечно есть: 21690219 или 21693196 . Для доски 997х997 имеется 2^249 сочетаний.Возьмите доску поменьше, убедитесь в том, что вы никогда не сможете дождаться перебора даже 2^64 сочетаний. Зачем вам алгоритм, который требует триллионы лет для завершения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2018, 20:24 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
BarloneGennadiy UsovКонечно есть: 21690219 или 21693196 . Для доски 997х997 имеется 2^249 сочетаний.Возьмите доску поменьше, убедитесь в том, что вы никогда не сможете дождаться перебора даже 2^64 сочетаний. Зачем вам алгоритм, который требует триллионы лет для завершения?Есть формула, а есть реализация этой формулы на компьютере. Это две разные вещи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2018, 21:21 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Ранее рассматривались "линейные" сочетания для одномерного массива чисел. А если рассмотреть сочетания на плоскости для двумерного массива чисел. То есть, необходимо найти сочетания для чисел из массива N на М. Каждое число из массива чисел может принимать значение либо 1, либо 2. Конечно, можно составить ещё один массив из NxM чисел, а затем провести соответствие между этим массивом и масcивом P[N][M]. Однако интереснее иметь сочетания для двумерного массива. Тогда имеем код для варианта сочетаний двумерного массива чисел: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. Аналогично можно будет определять сочетания для R-мерного массива чисел. И аналогично можно будет в этих массивах чисел искать сочетания не для всех чисел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2018, 07:06 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Есть ещё интересная задача. Необходимо найти сочетания N чисел, которые принимают значения либо 1, либо 2. При этом, количество "двоек" в сочетаниях не должно превышать некоторого предельного значения PR. Попробуем составить код для данной задачи: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2018, 06:38 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
В другом форуме ту же проблему обсуждают. Дали ссылку на алгоритм https://habr.com/post/248493/ Дублирую сюда. Может чем поможет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2018, 13:49 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Dima TВ другом форуме ту же проблему обсуждают. Дали ссылку на алгоритм https://habr.com/post/248493/ Дублирую сюда. Может чем поможет.Спасибо за информацию! Но, по-моему, несколько сложно. Ведь у нас очень неплохо получилось: 21699386 или 21690515 . Меня сейчас больше интересуют усложнения сочетаний: сочетания с ограничениями, сочетания чисел, принимающих М значений, сочетания на плоскости. Может быть ещё что-то появится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2018, 16:56 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Dima TВ другом форуме ту же проблему обсуждают. Дали ссылку на алгоритм https://habr.com/post/248493/ Дублирую сюда. Может чем поможет. Нерекурсивный алгоритм по той ссылке, скорее всего, по всем параметрам проиграет рекурсивному )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2018, 18:26 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Aleksandr SharahovDima TВ другом форуме ту же проблему обсуждают. Дали ссылку на алгоритм https://habr.com/post/248493/ Дублирую сюда. Может чем поможет. Нерекурсивный алгоритм по той ссылке, скорее всего, по всем параметрам проиграет рекурсивному )) Возможно. Алгоритм интересный, но упирается в изъятие элементов массива, что тормоз. Может я его не допонял, читаю исходник, пытаюсь в синтаксисе VB разобраться. Наверно лучше там упомянутую книгу качнуть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2018, 19:05 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
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.11.2018, 19:13 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Dima TAleksandr 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.11.2018, 19:32 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Dima TAleksandr SharahovНерекурсивный алгоритм по той ссылке, скорее всего, по всем параметрам проиграет рекурсивному )) У меня еще есть идея нерекурсивного алгоритма с деревом. Основано на идее что все комбинации по N элементов можно получить имея все комбинации по K и M, где K+M=N. Например для N=15 берем 7+8, где 7 = 3+4, 8 = 4+4, 3 = 2+1, 4 = 2+2. тогда будет проблемой, как подменять элементы в сгенерированных раскладах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2018, 20:35 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Aleksandr SharahovDima 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 Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. код классов Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. Результат Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Оптимизации пока никакой не делал, чтоб читаемость не рушить. Как минимум просится предварительный перегон в массивы second и union. Единственный минус что массив с очередным результатом каждый раз полностью заполняется, но это относительно небольшой тормоз. Суть задумки что внутри каждого объекта PermutationBy2 может быть два других объекта, т.е. дерево. В итоге будет класс Permutation(int N) с генератором последовательности комбинаций N по N. Примерно так Код: c# 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 10:32 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Dima T, вопрос в том, будет ли процедура Union.Next достаточно быстрой, т.к. все упирается в ее скорость ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 11:55 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Aleksandr SharahovDima 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: Код: plaintext И самое главное что я тут вижу - этот алгоритм параллелится. Просто разбить Union на части. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 13:54 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Dima T, Ну значит будет с чем сравнить: в лучших алгоритмах генерации перестановок на переход к следующей тоже требуется не слишком много тактов процессора. Проблемы запараллелить генерацию перестановок, в принципе, нет. Это можно провернуть почти с любым алгоритмом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 14:50 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Dima TДля случая (2,2) получается 6: Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 17:17 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Dima TAleksandr 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.11.2018, 17:34 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovDima TДля случая (2,2) получается 6: Код: plaintext Код: plaintext Это не все решение, а его часть. Надо склеить два массива в данном примере по два элемента. На место 0 подставляем из первого, на место 1 - из второго. Если будет три 0 или 1, то получим ошибку выхода за пределы массива, т.к. в каждом по два элемента. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 18:40 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovDima 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 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. У тебя же как-то по-другому, и я не смог понять как и почему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 18:47 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Dima TGennadiy UsovА как же следующие перестановки: Код: plaintext Это не все решение, а его часть. Надо склеить два массива в данном примере по два элемента. На место 0 подставляем из первого, на место 1 - из второго. Если будет три 0 или 1, то получим ошибку выхода за пределы массива, т.к. в каждом по два элемента.Так и у меня склейка: склеиваю несколько массивов, которые в сумме дают длину N. При этом существует правило: - к каждому сочетанию первого массива "приклеиваются" все сочетания второго массива; - к каждому сочетанию первого и второго массивов "приклеиваются" все сочетания третьего массива; - к каждому сочетанию первого, второго и треьего массивов "приклеиваются" все сочетания четвертого массива; и т.д. Dima TGennadiy 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 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 21690391 или 21699386 . Я так понимаю сочетания из 4-х по 4 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 19:11 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovЭто не мой алгоритм, а наш совместный: 21690391 или 21699386 . Нет. Там я не вникал в алгоритм. Я просто указал как правильнее делать его части. Gennadiy Usov Я так понимаю сочетания из 4-х по 4 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Поздравляю, ты изобрел двоичную систему счисления. Проблема только в том что ее 100 лет назад изобрели. Умножь первое число на 8, второе на 4, третье на 2, четвертое как есть. Сложи что получилось и получишь 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15. Это типа перевод из двоичной в десятичную. Я не понимаю зачем тебе надо изобретать этот древний велосипед? Нет, сам велосипед я прекрасно понимаю, но не понимаю что дальше ты хочешь с ним делать? PS Можно на "ты" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 20:27 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Если ты не можешь описать задачу, которую решаешь - то ты ее не решишь, ни сам, ни с чужой помощью, т.к. не помогут потому что банально не поймут в чем помочь надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 20:36 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Dima TGennadiy Usov Я так понимаю сочетания из 4-х по 4 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Поздравляю, ты изобрел двоичную систему счисления. Проблема только в том что ее 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.11.2018, 20:47 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovА ты так и не ответил на вопрос: И чем отличается у тебя первое и последнее сочетания в твоих сочетаниях по смыслу ? Я не могу ответить на этот вопрос, не вижу в нем смысла! Мои сочетания просты и понятны. Если применительно к ферзям, то число означает позицию в строке, а его положение - номер строки. Т.е. 3,2,0,1 это такая доска 0123ФФФФ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 21:03 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Теперь ты объясни что значит твое 1101. Простыми словами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 21:07 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Dima TGennadiy UsovА ты так и не ответил на вопрос: И чем отличается у тебя первое и последнее сочетания в твоих сочетаниях по смыслу ? Я не могу ответить на этот вопрос, не вижу в нем смысла! Мои сочетания просты и понятны. Если применительно к ферзям, то число означает позицию в строке, а его положение - номер строки. Т.е. 3,2,0,1 это такая доска 0123ФФФФДалее я теряюсь... А почему нельзя рассматривать такие комбинации, если работаем с плоскостью: 0123Ф ФФ 0123ФФ ФФ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 21:23 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Dima TТеперь ты объясни что значит твое 1101. Простыми словами.Очень просто: из четырех объектов в сочетании участвуют первый, второй и четвертый. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 21:24 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovDima Tпропущено... Я не могу ответить на этот вопрос, не вижу в нем смысла! Мои сочетания просты и понятны. Если применительно к ферзям, то число означает позицию в строке, а его положение - номер строки. Т.е. 3,2,0,1 это такая доска 0123ФФФФДалее я теряюсь... А почему нельзя рассматривать такие комбинации, если работаем с плоскостью: 0123Ф ФФ 0123ФФ ФФ Форма записи выбирается под решаемую задачу. Если речь про ферзей, то комбинации с двумя ферзями в столбце или строке недопустимы, поэтому нет смысла их рассматривать. Самая компактная форма записи - массив, где значение элемента обозначает столбец, положение (индекс массива) - строку. Т.е. моя запись описывает одну доску 4*4, с возможно правильной расстановкой ферзей. Генерим все возможные комбинации - получаем множество решений, внутри которого содержаться все правильные решения. Gennadiy UsovDima TТеперь ты объясни что значит твое 1101. Простыми словами.Очень просто: из четырех объектов в сочетании участвуют первый, второй и четвертый. Зачем? Дальше что с этим знанием делать? Я не понимаю, потому что не вижу практического смысла в этом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2018, 08:29 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Dima TDima TМои сочетания просты и понятны. Если применительно к ферзям, то число означает позицию в строке, а его положение - номер строки. Т.е. 3,2,0,1 это такая доска 0123ФФФФФорма записи выбирается под решаемую задачу. Если речь про ферзей, то комбинации с двумя ферзями в столбце или строке недопустимы, поэтому нет смысла их рассматривать. Самая компактная форма записи - массив, где значение элемента обозначает столбец, положение (индекс массива) - строку. Т.е. моя запись описывает одну доску 4*4, с возможно правильной расстановкой ферзей. Генерим все возможные комбинации - получаем множество решений, внутри которого содержаться все правильные решения. Значит, все-таки ферзи на доске 4х4. Я думал, что что-то другое. Тогда пишите не ферзи, а ладьи. И всем будет понятно, почему можно ставить фигуры на доску, и при этом не быть под боем. И что при этом означает твоя фраза: "с правильной расстановкой ферзей", когда ферзи под боем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2018, 09:15 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovЗначит, все-таки ферзи на доске 4х4. Я думал, что что-то другое. Тогда пишите не ферзи, а ладьи. И всем будет понятно, почему можно ставить фигуры на доску, и при этом не быть под боем. Пусть будут ладьи. Все множество ладьей содержит в себе подмножество ферзей. Если бы существовал формат записи, при котором каждая запись давала бы очередное решение задачи ферзей, то задачи бы не было. Количество комбинаций расстановки ладьей без боя считается элементарно. Gennadiy UsovИ что при этом означает твоя фраза: "с правильной расстановкой ферзей", когда ферзи под боем? Это не моя фраза. В моей фразе было слово "возможно". Повторюсь: я говорю про формат записи. Его задача уместить все правильные решения с минимальной избыточностью, т.е. минимум неправильных решений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2018, 09:38 |
|
||
|
Поиск любых сочетаний из К чисел
|
|||
|---|---|---|---|
|
#18+
Dima TGennadiy UsovDima TТеперь ты объясни что значит твое 1101. Простыми словами.Очень просто: из четырех объектов в сочетании участвуют первый, второй и четвертый.Зачем? Дальше что с этим знанием делать? Я не понимаю, потому что не вижу практического смысла в этом.Ты не видишь, и это плохо. Есть понятие: выбрать К объектов из N объектов – это общеизвестный термин «сочетания». Если применительно к задаче N ферзей, то приложений сочетаний там много. Это было показано в нескольких кодах на соседнем топике. Например, в алгоритме МММ на доске (NхМ)x(NхМ) имеет место включенная матрица МхМ. Этих матриц будет N по количеству ферзей на доске NxN. Оказалось, что в одном алгоритме могут быть 2 включенные матрицы. Тогда сочетание из 0 и 1 в количестве N чисел показывает: на месте включенной матрицы будет либо 1-ая матрица, либо 2-ая матрица. Можно вместо 0 и 1 применить 1 и 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2018, 13:08 |
|
||
|
|

start [/forum/topic.php?all=1&fid=16&tid=1340024]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
158ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
247ms |
get tp. blocked users: |
2ms |
| others: | 11ms |
| total: | 464ms |

| 0 / 0 |
