Что нового

[Полезняшки] Генератор уникальных случайных чисел.

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
AutoIt: Production Version: 3.3.8.1
Версия: 1.0

Категория: случайные числа, генераторы, регулярные выражения.

Описание: Функция генерирует строку, разделенную заданным разделителем, состоящую из уникальных чисел заданного диапазона.

Код/Пример:
Код:
ConsoleWrite(RandomUniq(1, 10) & @LF) ;Пример.
Func RandomUniq($iSt, $iEnd, $sd = ',')
	If $iSt > $iEnd Then Return SetError(1, 0, 0)
	Local $s = $sd, $k = 0
	For $i = $iSt To $iEnd
		$s = StringRegExpReplace($s, '^(?:-?\d*' & $sd & '?){' & Random(0, $k, 1) & '}?', '$0${1}' & $i & $sd)
		$k += 1
	Next
	$s = StringTrimRight($s, 2)
	Return SetError(0, 0, $s)
EndFunc   ;==>RandomUniq

На выходе, строка вида 5,3,7,8,1,9,4,2,6,10

История версий:
1.0.0.0 Релиз.
Если используете зарезервированные в REGEXP конструкторы в качестве разделителя, то не забывайте про экранирование.
Полученную строку легко можно превратить в массив функцией
Код:
StringSplit

Источник: autoit-script.ru
Автор(ы): <a href="http://autoit-script.ru/index.php?action=profile;u=697">inververs</a>
 
Верх