Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2010, 12:19   #1
Simbad
Пользователь
 
Регистрация: 10.12.2009
Сообщений: 62
Сообщение Получить все последовательности длины N из чисел 1,2,...,M

Приветствую всем!
Помогите, пожалуйста, решать этого задача с помощью VBAExcel.

Получить все последовательности длины N из чисел 1,2,...,M.
Всего таких последовательностей будет M^N.
Например: M=2, N=3, M^N=8
111
112
121
122
211
212
221
222
Simbad вне форума Ответить с цитированием
Старый 25.03.2010, 12:32   #2
Dophin
Форумчанин
 
Аватар для Dophin
 
Регистрация: 13.01.2010
Сообщений: 410
По умолчанию

а М всегда 3?

насчет М понял, что в итоге надо не понял(

Последний раз редактировалось Dophin; 25.03.2010 в 12:34.
Dophin вне форума Ответить с цитированием
Старый 25.03.2010, 12:41   #3
Simbad
Пользователь
 
Регистрация: 10.12.2009
Сообщений: 62
По умолчанию

Я просто пример привел. M и N могут быть любой цифр
Simbad вне форума Ответить с цитированием
Старый 25.03.2010, 12:46   #4
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Вам надо получить все перестановки,а не комбинации?
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 25.03.2010, 13:13   #5
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

rez -результат
Код:
 Dim M As Integer
    Dim N As Integer
    Dim X() As Integer
      Dim rez As String
     Sub PERESTANOVKA()
    Dim i As Long
    Dim j As Long
           
    M = CInt(InputBox("Введите M"))
    N = CInt(InputBox("Введите N"))
    ReDim X(N)
     
   rez = ""
     
    For i = 1 To N
        X(i) = 1
    Next

    For i = 1 To M ^ N
             For j = 1 To N
   rez = rez & CStr(X(j))
             Next
         
          rez = rez & vbCrLf
             NextS
    Next
     
    f = Split(rez, vbCrLf, -1)
   For i = 0 To UBound(f)
   Cells(i + 2, 1) = f(i)
   Next
   
    End Sub
     
    Private Sub NextS()
    Dim i As Long
     
    i = N
    Do While (i > 0) And (X(i) = M)
    X(i) = 1
    i = i - 1
    Loop
    If i > 0 Then X(i) = X(i) + 1
    End Sub
Анализ,обработка данных Недорого

Последний раз редактировалось doober; 25.03.2010 в 13:17.
doober вне форума Ответить с цитированием
Старый 25.03.2010, 13:34   #6
Simbad
Пользователь
 
Регистрация: 10.12.2009
Сообщений: 62
По умолчанию

Большое вам спасибо! Это то, что мне нужно.
Слава богу что ест такие как вы. Ещё раз вам спасибо за помощь!!!!
Simbad вне форума Ответить с цитированием
Старый 25.03.2010, 14:28   #7
Dophin
Форумчанин
 
Аватар для Dophin
 
Регистрация: 13.01.2010
Сообщений: 410
По умолчанию

круто. (ушел разбирать как работает)
Dophin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск в последовательности чисел упорядоченной подпоследовательности макс длины Rusl92 Помощь студентам 6 27.02.2010 00:02
умножение 2-х чисел произвольной длины с плавающей точкой Ferza Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 24.06.2009 19:24
сложение чисел произвольной длины Ferza Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 24.06.2009 11:16
Определить k-ую цифру последовательности Фибоначчи и последовательности натуральных чисел. Med Помощь студентам 1 20.03.2009 11:40
вычисление суммы чисел, кратных 3 из последовательности, состоящей из 10 чисел, заранее заданных Белка Помощь студентам 3 27.10.2007 11:53