Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Перебор всех возможных вариантов массива.
 
Есть двумерный диапазон ячеек, в ячейках слова, на выходе одномерная матрица строк, со всеми возможными вариантами из этих слов.
Добустим есть диапазон(матрица) ячеек со словами.
сл1   сл2   сл3   сл4
сл5   сл6   сл7   сл8
        сл9  сл10  сл11
                         сл12

Нужно перебрать все возможные варианты с этими словами, и записать их в столбик.
сл1 сл2
сл1 сл2 сл3
сл1 сл2 сл3 сл4
сл1 сл2 сл3 сл8
И так далее по всем словам.
 
Нужны только сочетания слов без их перестановок?
Сколько всего слов?
Для 12 слов можем получить 4095 (2^12-1) различных сочетаний, куда их выводить? (если слов более 20, то в один столбец на лист Excel они не поместятся)
Изменено: MCH - 23 Мар 2015 16:16:53
 
Михаил, нужна загрузка для директа :)
 
Нужны как раз все возможные перестановки только без повторений. Главное только, чтоб фраза из нескольких слов находилась в одной ячейке.
т.е. в одной ячейке должна быть фраза из слов, а не каждое слово в отдельной ячейке.
Один столбец заполнить, потом можно выводить во второй.
 
Совершенно верно. Для директа.
 
Цитата
Spirit1986 написал: Нужны как раз все возможные перестановки только без повторений
Т.е.  "сл1 сл2" и "сл2 сл1" - это две разные генерации?
А также "сл1 сл2 сл3", "сл1 сл3 сл2", "сл2 сл1 сл3", "сл2 сл3 сл1", "сл3 сл1 сл2", "сл3 сл2 сл1" - тоже разные"

Или это равнозначные комбинации "сл1 сл2" и "сл1 сл2 сл3" соответственно?
Изменено: MCH - 5 Май 2015 13:50:15
 
"сл1 сл2 сл3" и "сл2 сл3 сл1"это одно и тоже, "сл1 сл2" и "сл2 сл1" это тоже одно и тоже. Но "сл1 сл2" и "сл1 сл2 сл3" и "сл1 сл10" это уже разные значения.  
Изменено: Spirit1986 - 23 Мар 2015 17:29:29
 
Тогда зачем Вы писали про перестановки? это же обычные сочетания без перестановок.
 
Ну да, там всего-то (2^n)-1 вариантов (число сочетаний от 1 до k из n без повторений). На лист поместится максимум 2^20 сочетаний, если перебирать все.
Делал недавно такое, в нескольких вариантах (с "-", без, и т.п.), если интересует - пишите в личку.
F1 творит чудеса
 
Сделал, долго пришлось возиться
 
MCH, :D жестоко, но правильно
F1 творит чудеса
 
MCH Спасибо.  
 
Вариант макроса. Перед запуском надо выделить прямоугольный диапазон со словами (в нем могут быть пустые ячейки, как в примере).



сл1сл2сл3сл4
сл5сл6сл7сл8
сл9сл10сл11
сл12
Результат на новом листе.
Код
Sub bb()
Dim i&, j&, n&, p&, q&, x, v(), s$
v = Selection.Value
ReDim slova$(0 To UBound(v) * UBound(v, 2))
For Each x In v
  If Not IsEmpty(x) Then slova(i) = Trim$(Replace$(x, ChrW$(160), "")): i = i + 1
Next
ReDim v(0 To 2 ^ i - 1, 1 To 1)
For i = 3 To UBound(v)
  j = i 'число для разбора на биты
  n = 0 'номер слова
  p = 0 'число единиц в двоичном представлении
  s = ""
  Do While j
    If j Mod 2 Then s = s & " " & slova(n): p = p + 1
    j = j \ 2
    n = n + 1
  Loop
  If p > 1 Then v(q, 1) = Mid(s, 2): q = q + 1
Next
Sheets.Add.Cells(1, 1).Resize(q).Value = v

End Sub
 
Казанский Спасибо. Огромное при огромное.  
 
Здравствуйте, помогите пожалуйста.

Необходимо в Excel сделать перебор  вариантов(текст),но без повторов лишнего
Например:
Вика Саша    А1  б   получить  ВикаСашаА1б, ВикаСашаА1в, ВикаСашаА1г  
                            в
                            г
Настя Катя   А1  б   получить НастяКатяА1б, НастяКатяА1в, НастяКатяА1г  
                            в
                            г                  
Настя Катя   А2   б   получить НастяКатяА2б, НастяКатяА2в, НастяКатяА2г  
                            в
                            г                  

Заранее,спасибо.            
 
nika2701, а файла у Вас нет?
 
А подойдет ли Вам решение "в столбик"?
 
Посмотрите,пожалуйста файл

т.е. (1+2) столбец общее, а перебирались  Города и Условия
Изменено: nika2701 - 27 Апр 2018 16:27:03
Страницы: 1
Читают тему (гостей: 1)