За последние 24 часа нас посетили 16563 программиста и 1643 робота. Сейчас ищут 1211 программистов ...

Помогите реализовать алгоритм

Тема в разделе "Сделайте за меня", создана пользователем Владимир4234, 15 сен 2019.

  1. Владимир4234

    Владимир4234 Новичок

    С нами с:
    11 май 2018
    Сообщения:
    69
    Симпатии:
    2
    Есть массив с 9 значениями, в нём есть только такие значения, 1, 2, 3
    Нужно через цикл перебрать все возможные расстановки этих цифр в массиве с 9 эелементами, то есть 3 в 9 степени ровно
    19683 возможных разных позиций 3 цифр в массиве из 9 элементами.

    Что то типо такого
    For 19683{
    If m[0] == 1 and m[1] == 1 and .....
    // то
    }
     
  2. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    зачем?
     
  3. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.842
    Симпатии:
    652
    По сути это формирование троичных 9-значных чисел, только без цифры 0 в алфавите. Можешь последовательно выводить числа в диапазоне 0...3 в степени 9 минус 1, преобразуя их в троичную и учитывая алфавит. Алгоритм поищи в сети. Он основан на циклическом целочисленном и взятии остатков в качестве цифр в обратном порядке (можно использовать стек для врем. хранения цифр или какой-либо прямой способ записи результата с конца).
    --- Добавлено ---
    Ну и для чисел, не дотягивающих до девяти разрядов, дописываешь нужное кол-во незначащих цифр (обычно нулей, но в данном случае единиц). Или сразу заполняй «сетку» девятью единицами, а потом уже вписывай в нее полученное число.
     
  4. kazadai90

    kazadai90 Активный пользователь

    С нами с:
    6 фев 2013
    Сообщения:
    103
    Симпатии:
    19