Список всевозможных комбинаций чисел из 7 цифр от 0 до 9 без возможности повтора

Правильно ли написан .bat? Проверьте, пожалуйста. Требуется список всевозможных комбинаций чисел из 7 цифр от 0 до 9 без возможности повтора.

В блокнот скопируем семь строк

FOR /L %%i IN (0,1,9) DO echo 000%%i>> stat.txt
FOR /L %%i IN (10,1,99) DO echo 00%%i>> stat.txt
FOR /L %%i IN (100,1,999) DO echo 0%%i>> stat.txt
FOR /L %%i IN (1000,1,9999) DO echo %%i>> stat.txt
FOR /L %%i IN (10000,1,99999) DO echo %%i>> stat.txt
FOR /L %%i IN (100000,1,999999) DO echo %%i>> stat.txt
FOR /L %%i IN (1000000,1,9999999) DO echo %%i>> stat.txt

Сохрани как run.bat и затем - кликни по нему (запуск с правами админа).

Через время - файл с комбинациями будет лежать в той же папке или %system32%


Ответы (2 шт):

Автор решения: Stanislav Volodarskiy

.bat составлен неправильно. Он порождает 10 + 90 + 900 + 9000 + 90000 + 900000 + 9000000 = 10000000 комбинаций.

Речь о числе размещений A(n, k). Количество способов выбрать всевозможные размещения 7 из 10 цифр без повторов равно A(10, 7) = 10! / (10 - 7)! = 604800.

Числа не совпадают, следовательно .bat составлен неправильно.

→ Ссылка
Автор решения: Harry

Ну, раз Stanislav Volodarskiy дал ответ по поводу размещений, я скажу о сочетаниях :)

Вот файл, который выводит все 120 сочетаний из 7 цифр из 10 возможных:

@echo off
setlocal enableextensions 
setlocal enabledelayedexpansion

for /L %%g in (6,1,9) do (
  set x=%%g
  set /A x=x-1
  for /L %%f in (5,1,!x!) do (
    set y=%%f
    set /A y=y-1
    for /L %%e in (4,1,!y!) do (
      set z=%%e
      set /A z=z-1
      for /L %%d in (3,1,!z!) do (
        set u=%%d
        set /A u=u-1
        for /L %%c in (2,1,!u!) do (
          set v=%%c
          set /A v=v-1
          for /L %%b in (1,1,!v!) do (
            set w=%%b
            set /A w=w-1
            for /L %%a in (0,1,!w!) do echo %%a%%b%%c%%d%%e%%f%%g
          )    
        )    
      )    
    )      
  )
)
                
endlocal

А уж куда перенаправить его вывод - дело десятое :)

Если немного повозиться - можно написать и размещение...

→ Ссылка