С Новым годом! Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/55: Рейтинг темы: голосов - 55, средняя оценка - 4.87
 Аватар для Kaktuz
7 / 7 / 4
Регистрация: 28.05.2012
Сообщений: 169

Найти все возможные перестановки элементов массива

14.06.2015, 14:43. Показов 10360. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вроде задание не сложно, но не могу найти понятное и не сложное решение. Необходимо найти все варианты построения строки. Например:
Данные для обработки
var mas = new Array(0, 0, 1);
Результат
1. 001
2. 010
3. 100
4. 011
5. 101
6. 110
7. 111
или
var mas = new Array("A", "B", "C");
1. ABC
2. BCA
3. CAB
4. ACB
5. BAC
....
Как-то так это себе представляю.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.06.2015, 14:43
Ответы с готовыми решениями:

Необходимо вывести все возможные перестановки
Дана коллекция неповторяющихся чисел. Необходимо вывести все возможные перестановки. Пример: Входные данные: Выходные данные: , , , ,...

Вывести все возможные перестановки символов в строке
Вводится строка, на вывод вывести все возможные перестановки этой строки. Например: вводим abc на вывод - acb, bac, cba...

Нужно найти все возможные перестановки элементов массива
думаю что кто то уже решал подобное и надеюсь что поделиться. Допустим имеются три элемента 1;2;3. Нужно найти все возможные...

5
134 / 130 / 57
Регистрация: 29.12.2011
Сообщений: 359
14.06.2015, 15:36
Слишком расплывчатое задание.
Цитата Сообщение от Kaktuz Посмотреть сообщение
var mas = new Array(0, 0, 1);
Результат
1. 001
2. 010
3. 100
4. 011
5. 101
6. 110
7. 111
Зачем 2 раза 0 в конструкторе массива?
Почему бы не указывать допустимые символы и длину?
Или всё-таки надо перестановки искать? Тогда варианты с 2мя и более единицами - неверны, потому что была дана только одна.
0
 Аватар для Kaktuz
7 / 7 / 4
Регистрация: 28.05.2012
Сообщений: 169
14.06.2015, 15:51  [ТС]
Мда, запутал так что и сам запутался.
Относительно массива (0, 0, 1) результат должен получится кратким
1. 001
2. 010
3. 100
Все. Больше вариантов нет. Но вот когда (1, 2, 3) вариантов уже будет побольше. Использую массив поскольку число вариантов (длина массива) может быть разным. Например так еще ("при", "вет", "мой", "мир", "вам")
var mas = new Array("при", "вет", "мой", "мир", "вам");
var a = mas.join("-");
1. при-вет-мой-мир-вам
2. вет-мой-при-мир-вам
3. мой-при-вет-мир-вам
....
0
134 / 130 / 57
Регистрация: 29.12.2011
Сообщений: 359
14.06.2015, 16:02
Лучший ответ Сообщение было отмечено Kaktuz как решение

Решение

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function permute(string) {
    function recur(string, prefix) {
        if (string.length === 0) {
            return [prefix];
        } else {
            var out = [];
            for (var i = 0; i < string.length; i++) {
                var pre = string.substring(0, i);
                var post = string.substring(i + 1);
                out = out.concat(recur(pre + post, string[i] + prefix));
            }
            return out;
        }
    }
    var distinct = {};
    recur(string, "").forEach(function(result) {
        distinct[result] = true;
    });
    return Object.keys(distinct);
}
 
console.log(permute("001"));
Для строк
Честно нашёл здесь: http://www.reddit.com/r/dailyp... _a_string/
Для массивов, надо модифицировать
0
 Аватар для Kaktuz
7 / 7 / 4
Регистрация: 28.05.2012
Сообщений: 169
14.06.2015, 16:10  [ТС]
Спасибо, дальше думаю справлюсь, переделаю под массив.
0
0 / 0 / 0
Регистрация: 01.08.2018
Сообщений: 1
01.08.2018, 15:27
JavaScript
1
2
3
4
5
6
7
8
9
function variant(str, now='', arr=[]){
    if(str)
        for(var i=0;i<str.length;i++)
            variant(str.slice(0, i) + str.slice(i+1), now + str[i], arr);
    else
        if(!arr.includes(now))
            arr.push(now);
    return arr;
}
Использование:
variant('abc')
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.08.2018, 15:27
Помогаю со студенческими работами здесь

Вывести все возможные перестановки элементов массива
Имеется динамический массив a В массиве а имеется от 2 до 9 цифр Нужно написать программу, которая выполнит все возможные...

Все возможные перестановки элементов заданного массива
Помогите вывести на консоль все возможные перестановки элементов заданного массива void printPermutations (int items , int itemsLength) {...

Найти все возможные перестановки
Условие задачи состоит в том что у нас есть кинотеатр, и там показывают 3 фильма &quot;1&quot;, &quot;2&quot;, &quot;3&quot;. Кинотеатр...

Построить все возможные перестановки элементов множества.
Дано множество из некоторого количества элементов. Построить все возможные перестановки его элементов.

Найти все возможные перестановки цифр
дано 6-розрядное число...надо найти все возможные перестановки цыфр...как ето организовать???помогите пожалуста!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru