Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для YuS_2

Crazy


Contributor


Сообщения: 1234
Благодарности: 517

Профиль | Отправить PM | Цитировать


Ну и ещё вариант:
Порылся в загашниках, нашел функцию перестановок символов...
permutationwithrepetition.ps1
Код: Выделить весь код
[cmdletbinding()]
Param (
	[string]$arr = '.-',
	[int]$count = 12
)
function perm ($values,$size,$offset){
	$count = $values.length
	$array = new-object object[] $size
	for ($i = 0; $i -lt $size; $i++) {
		$selector = [math]::truncate($offset / [math]::pow($count,$i)) % $count
		$array[$i] = $values[$selector]
	}
	return $array
}
function permutations ($values, $size) {
	$Ar = [math]::pow($values.length, $size)
	$a = new-object object[] $Ar
	for ($i = 0; $i -lt $Ar; $i++) {
		$a[$i] = perm $values $size $i
	}
	return $a
}

$charr = $arr.tochararray()

$out = permutations $charr $count

foreach ($item in $out){$item -join ' '}

$out.count
- запуск скрипта без параметров выведет все варианты перестановок символов точка-тире на 12 знакомест и количество вариантов.
Адаптировать под задачу несложно, если что...

-------
scio me nihil scire. Ѫ


Отправлено: 12:52, 15-04-2025 | #8