Здравствуйте, kosfr, Вы писали:
K>быстрый алгоритм для перебора одного возможного варианта в матрице? что бы не повторялись. K>1 2 3 K>6 1 2 K>6 2 9
K>output : 2,1,8
Я понял — это намёк,
Я всё ловлю на лету.
Но непонятно,
Что конкретно ты имела в виду?
(с) Несчастный Случай
Re: быстрый алгоритм для перебора одного возможного варианта
K>быстрый алгоритм для перебора одного возможного варианта в матрице? что бы не повторялись. K>1 2 3 K>6 1 2 K>6 2 9 K>output : 2,1,8
Особенно загадочно выглядит отсутствие числа 8 во входных данных И при чем тут .NET?
Re: быстрый алгоритм для перебора одного возможного варианта
Здравствуйте, Mab, Вы писали:
K>>быстрый алгоритм для перебора одного возможного варианта в матрице? что бы не повторялись. K>>1 2 3 K>>6 1 2 K>>6 2 9 K>>output : 2,1,8 Mab>Особенно загадочно выглядит отсутствие числа 8 во входных данных И при чем тут .NET?
2,1,9
и наверное надо перенести в Алгоритмы .
sorry
Kostya
Re[3]: быстрый алгоритм для перебора одного возможного вариа
[... skipped ...]
Mab>>Особенно загадочно выглядит отсутствие числа 8 во входных данных И при чем тут .NET?
K>2,1,9
K>и наверное надо перенести в Алгоритмы .
Думаешь, поможет? Так и не стало понятно, что же, собственно, тебе надо.
Re[3]: быстрый алгоритм для перебора одного возможного вариа
Здравствуйте, kosfr, Вы писали:
K>и наверное надо перенести в Алгоритмы .
Не, логичнее в "Коллеги, улыбнитесь".
Либо в массиве надо заменить 6 и 9 на 3 и 1 соответственно и тогда это будут перестановки, либо результат 3 и 9 которые встречаются по одному разу. Имно.
Re[4]: быстрый алгоритм для перебора одного возможного вариа
Здравствуйте, jhfrek, Вы писали:
J>Здравствуйте, kosfr, Вы писали:
K>>и наверное надо перенести в Алгоритмы .
J>Не, логичнее в "Коллеги, улыбнитесь".
J>Либо в массиве надо заменить 6 и 9 на 3 и 1 соответственно и тогда это будут перестановки, либо результат 3 и 9 которые встречаются по одному разу. Имно.
у меня есть матрица m*n 3x2. мне надо создать массив m чисел (3). в каждой мне надо взять одно число random так что бы не повторялось в массиве.
извиняюсь за непонятие проста на клаве нету русского.
Kostya
Re[5]: быстрый алгоритм для перебора одного возможного вариа
K>у меня есть матрица m*n 3x2. мне надо создать массив m чисел (3). в каждой мне надо взять одно число random так что бы не повторялось в массиве.
Не сказать, чтобы сильно помогло.
Если необходимо получить три различных числа, лежащих в интервале 0..N Генерируйте число в полуинтервале 0..С^{3}_{N} ("це из N по 3" ), получите номер множества, содержащего искомые числа.
Если необходимо получить случайную перестановку трех различных чисел, генерируете число в полуинтервале 0..3!, получите номер перестановки этих чисел.
Re[5]: быстрый алгоритм для перебора одного возможного вариа
Здравствуйте, kosfr, Вы писали:
K>у меня есть матрица m*n 3x2. мне надо создать массив m чисел (3). в каждой мне надо взять одно число random так что бы не повторялось в массиве.
Формализуем задачу.
Есть набор из N векторов одинаковой размерности M.
Необходимо из каждого вектора взять по одному элементу, так, чтобы набор из N чисел не содержал повторений.
Вопрос:
Требуется ли, чтобы номера элементов тоже были уникальными? (т.е., взяв в первом векторе i-й элемент, мы вычёркиваем все i-е элементы из рассмотрения).
Если нет — то задача несколько облегчается.
В любом случае, алгоритм выбора с возвратами будет работать.
Выбираем случайный элемент очередного вектора; вычёркиваем его из оставшихся векторов; если где-то получили пустой вектор — производим откат и выбираем другой элемент. Если больше вариантов не осталось — тоже производим откат и возвращаемся на шаг назад.
Можно ли сделать алгоритм без возвратов — это надо подумать.