Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / найти нужное сочетание без повторений / 25 сообщений из 43, страница 1 из 2
28.04.2010, 10:47
    #36602320
rongerme
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти нужное сочетание без повторений
Приветствую всех форумчан, встал вопрос, а как найти необходимое сочетание 8 столбцов из 24 столбцов?
необходимое - тк есть условие, в сумме построчно - четные числа (или 0 mod 2) - но это дело 10е

число различных сочетаний без повторений n!/(n-k)!k! что в нашем случае 735471 шт)

проблема - не знаю как подступиться, т.е. как выбирать 8 различных столбцов для сравнения, чтобы они не повторялись
подскажите идею, спасибо
...
Рейтинг: 0 / 0
28.04.2010, 10:56
    #36602350
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти нужное сочетание без повторений
А в чем проблема? Считаете, что перебор будет слишком долгим?
...
Рейтинг: 0 / 0
28.04.2010, 13:36
    #36602871
найти нужное сочетание без повторений
...
Рейтинг: 0 / 0
28.04.2010, 14:26
    #36603043
rongerme
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти нужное сочетание без повторений
за ссылку спасибо)

ну в данном конкретном случае - думаю 70 ывриантов как раз плюнуть для экселя, а вот, если будет на пару порядков больше - тут уже надо думать)
если есть какой совет - может сталкивались с таким - для больших чисел m и n - поделитесь, спасибо)
...
Рейтинг: 0 / 0
28.04.2010, 14:27
    #36603049
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти нужное сочетание без повторений
сначала посмотрите в хэлпе экселя про ограничения кол-ва столбцов и рядов в листе
...
Рейтинг: 0 / 0
28.04.2010, 14:33
    #36603070
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти нужное сочетание без повторений
Konst_Oneсначала посмотрите в хэлпе экселя про ограничения кол-ва столбцов и рядов в листе

Ну тут время будет расти в геометрической прогрессии и вряд ли упремся в ограничение экселя раньше, чем в терпение юзера.

Я думаю, тут надо думать в сторону хэширования...
К примеру, четные значения не интересуют вообще, они всегда в сумме дадут четное...
...
Рейтинг: 0 / 0
28.04.2010, 15:50
    #36603328
rongerme
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти нужное сочетание без повторений
стесняюсь спросить,а при чем здесь ограничение по столбцам и строкам?
суть вот какая:
есть числа 1...24 - номера столбцов
пытаюсь найти алгоритм (п оссылке выше что-то он мутноватый какой-то) - как перебрать все сочетания без повторений по 8 столбцов,
а внутри конкретного сочетания уже проверять условие - это дело тридцатое и как его реализовать я знаю

единственная загвоздка как раз в алгоритме, тк на этом этапе массив не огромен и это делается в excele для наглядности (мысль была, что буфер переполнится, но потом отпала)
...
Рейтинг: 0 / 0
28.04.2010, 15:52
    #36603333
rongerme
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти нужное сочетание без повторений
Shocker.Pro[quot Konst_One]К примеру, четные значения не интересуют вообще, они всегда в сумме дадут четное...
не совсем так) у меня матрица из 0 и 1, про четные нечентные я просто так написал, для абстракции
но опять же на тему условия заморачиваться даже не стоит - важно перебрать все сочетания
...
Рейтинг: 0 / 0
28.04.2010, 15:55
    #36603349
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти нужное сочетание без повторений
rongermeкак перебрать все сочетания без повторений по 8 столбцов

Первое, что пришло в голову - брутфорс
- устроить цикл от 1 до 2^24
- переводить число в бинарное представление, посчитать количество единиц
- если 8 - значит это маска нужных нам столбцов (без повторений)
...
Рейтинг: 0 / 0
28.04.2010, 16:38
    #36603507
rongerme
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти нужное сочетание без повторений
Shocker.Prorongermeкак перебрать все сочетания без повторений по 8 столбцов

Первое, что пришло в голову - брутфорс
- устроить цикл от 1 до 2^24
- переводить число в бинарное представление, посчитать количество единиц
- если 8 - значит это маска нужных нам столбцов (без повторений)


а почему 8? ведь в каждом представлении может быть несколько 1?
...
Рейтинг: 0 / 0
28.04.2010, 16:43
    #36603527
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти нужное сочетание без повторений
rongermeа почему 8? ведь в каждом представлении может быть несколько 1?

потому что вы просили, сочетание 8 столбцов.
Если вам нужно расширенное сочетание (от 1 до 8 столбцов), то соответственно и надо подсчитывать количество единиц от 1 до 8

(просто не помню уже вычисление сочетаний и не могу сделать реверс-инжиниринг формулы n!/(n-k)!k!)

Я не понял, что такое "представление" в вашей формулировке, поэтому, возможно, дал неточный ответ.
...
Рейтинг: 0 / 0
28.04.2010, 16:46
    #36603539
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти нужное сочетание без повторений
000000000000000000000001 - не подходит
000000000000000000000010 - не подходит
000000000000000000000011 - не подходит
000000000000000000000100 - не подходит
...
000000000000000011111110 - не подходит
000000000000000011111111 - подходит
000000000000000100000000 - не подходит
...
000010010111010000100000 - не подходит
000010010111010000100001 - подходит
000010010111010000100010 - подходит
000010010111010000100011 - не подходит
....

и т.п.
...
Рейтинг: 0 / 0
28.04.2010, 16:53
    #36603560
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти нужное сочетание без повторений
> Автор: Shocker.Pro
> 000010010111010000100010 - подходит
> 000010010111010000100011 - не подходит


Здается мне это похоже на степени двойки, начиная с определенного числа - 255

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
28.04.2010, 16:56
    #36603569
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти нужное сочетание без повторений
я вообще потерял нить рассуждений автора. о каких совпадениях идёт речь? он решил в лоб сравнивать биты через посимвольное сравнение как строки?
...
Рейтинг: 0 / 0
28.04.2010, 16:58
    #36603576
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти нужное сочетание без повторений
Konst_Oneя вообще потерял нить рассуждений автора. о каких совпадениях идёт речь? он решил в лоб сравнивать биты через посимвольное сравнение как строки?

http://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D1%8F
...
Рейтинг: 0 / 0
28.04.2010, 16:59
    #36603581
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти нужное сочетание без повторений
достали эти студенты сегодня. я ещё им должен комбинаторику вспоминать 20-летней давности
...
Рейтинг: 0 / 0
28.04.2010, 17:01
    #36603587
rongerme
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти нужное сочетание без повторений
Shocker.Pro
потому что вы просили, сочетание 8 столбцов.
Если вам нужно расширенное сочетание (от 1 до 8 столбцов), то соответственно и надо подсчитывать количество единиц от 1 до 8

(просто не помню уже вычисление сочетаний и не могу сделать реверс-инжиниринг формулы n!/(n-k)!k!)

Я не понял, что такое "представление" в вашей формулировке, поэтому, возможно, дал неточный ответ.
представление в моем понимании это 1 - 00000001, 2 - 00000010 и тп
вы это же имели в виду?
а можно на пальцах, а то, не могу понять, какоа алгоритм (хотя бы первые шаги)
вот есть числа 1...24
перевели их в двоичное представление, а дальше что?
нужно получить последовательности типа 1,2,3,4,5,6,7,8 или 1,10,2,3,4,5,6,7 и тп
...
Рейтинг: 0 / 0
28.04.2010, 17:02
    #36603588
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти нужное сочетание без повторений
Konst_Oneдостали эти студенты сегодня. я ещё им должен комбинаторику вспоминать 20-летней давности

Да ладно. Тут хоть есть где мозгами пошевелить.
Хотя пока более интересного способа поиска сочетаний я пока не придумал.
А что сказал Игорь вообще не понял.
...
Рейтинг: 0 / 0
28.04.2010, 17:05
    #36603596
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти нужное сочетание без повторений
rongermeвот есть числа 1...24
перевели их в двоичное представление, а дальше что?
нужно получить последовательности типа 1,2,3,4,5,6,7,8 или 1,10,2,3,4,5,6,7 и тп

не 1-24, а 1-16777216

пример я привел тут.
Каждый бит двоичного числа соответствует вашему столбцу №1...24
...
Рейтинг: 0 / 0
28.04.2010, 17:12
    #36603622
rongerme
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти нужное сочетание без повторений
Konst_Oneдостали эти студенты сегодня. я ещё им должен комбинаторику вспоминать 20-летней давности
за студента спасибо) польстили
Shocker.Prorongermeвот есть числа 1...24
перевели их в двоичное представление, а дальше что?
нужно получить последовательности типа 1,2,3,4,5,6,7,8 или 1,10,2,3,4,5,6,7 и тп

не 1-24, а 1-16777216

пример я привел тут.
Каждый бит двоичного числа соответствует вашему столбцу №1...24
так ведь мы получим только числа кратные 8? а нам ведь надо последовательность
как вашим методом получить последовательность 1,2,5,6,8,20,21,24?
...
Рейтинг: 0 / 0
28.04.2010, 17:15
    #36603635
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти нужное сочетание без повторений
вам для чего это нужно?
какова реальная задача и что вы хотите получить?
...
Рейтинг: 0 / 0
28.04.2010, 17:15
    #36603636
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти нужное сочетание без повторений
rongermeтак ведь мы получим только числа кратные 8?

Это еще почему?

rongermeкак вашим методом получить последовательность 1,2,5,6,8,20,21,24?

очередное число, на которое вы наткнетесь будет
110011010000000000011001 (биты пронумеровваны справа налево)

то есть единички стоят в позициях 1,2,5,6,8,20,21,24 - это и есть подходящая маска.
Десятичный эквивалент этого числа - 13434905
то есть это сочетание встретится на 13434905-й итерации цикла
...
Рейтинг: 0 / 0
28.04.2010, 17:15
    #36603638
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти нужное сочетание без повторений
> Автор: Shocker.Pro
> А что сказал Игорь вообще не понял.

Я сказал, что числа меньше 255 проверять нет смысла, т.к. первые восемь едениц в двоичном представлении получаются у
числа 255. т.е. 2^8-1. Дальше нужно попробовать получить формулу по которой можно получать эти цифры. Или понять
алгоритм эффективной проверки

> Да ладно. Тут хоть есть где мозгами пошевелить.
> Хотя пока более интересного способа поиска сочетаний я пока не придумал.



Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
28.04.2010, 17:17
    #36603647
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти нужное сочетание без повторений
Shocker.Pro110011010000000000011001 (биты пронумеровваны справа налево)

ой, в данном случае слева направо, но работать тоже будет
...
Рейтинг: 0 / 0
28.04.2010, 17:19
    #36603655
rongerme
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти нужное сочетание без повторений
Konst_Oneвам для чего это нужно?
какова реальная задача и что вы хотите получить?
мне нужно дешифровать сообщение, если в общем
более точно: матрицу 16х24 (из 0 и 1) надо разбить на 3 блока (1 блок - матрица 16х8), известно, что в каждая строка блока в сумме доет 0 mod 2
так вот, я хочу наложить это условие на каждое сочетание (дргими словами, на каждый возможный вариант группы из 8 столбцов, где каждый столбец не повторяется в этой группе)
чтобы это сделать, необходимо пробежать по всем сочетаниям - для этого и спрашиваю алгоритм
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / найти нужное сочетание без повторений / 25 сообщений из 43, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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