Как я могу рандомизировать последовательность символов? - PullRequest
1 голос
/ 26 июня 2010

Я хочу написать функцию, которая рандомизирует порядок последовательности буквенных символов.Например, последовательность:

ABCDEFG.,,

... может быть изменено на:

ZLTAP ...

... которое, если передано той же функцииснова может привести к:

HREIC ....

Есть предложения?

Ответы [ 3 ]

2 голосов
/ 26 июня 2010

Взгляните на алгоритм Фишера-Йейтса shuffle и, в частности, современную версию его.

0 голосов
/ 26 июня 2010

Вы имеете в виду рандомизировать алфавит?Я написал нечто похожее на PHP несколько дней назад.Логика была следующей:

  1. Пусть S1 - строка, содержащая символы алфавита "ABC ... XYZ".
  2. Пусть S2 - пустая строка.
  3. Пока strlen (S1)> 0, выберите случайный символ C из S1.Добавьте C к S2 и удалите C из S1.
  4. Возврат S2.

Результатом является произвольно перемешанный набор символов, созданный с минимальной загрузкой ЦП (если строка содержит 26 символов).внутреннему циклу нужно всего 26 итераций).

0 голосов
/ 26 июня 2010

Звучит как домашняя работа, но в любом случае:

http://stanford.edu/~blp/writings/clc/shuffle.html

...