如何随机化一系列字符?

时间:2010-06-25 22:25:46

标签: c random sequence shuffle

我想编写一个随机化字母字符序列顺序的函数。例如,序列:

  

A B C D E F G. 。 。

......可能会更改为:

  

Z L T A P ...

...如果再次传递给同一个函数,可能会导致:

  

H R E I C ....

有什么建议吗?

3 个答案:

答案 0 :(得分:2)

查看Fisher-Yates shuffle算法,特别是modern version算法。

答案 1 :(得分:0)

这听起来像家庭作业,但无论如何:

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

答案 2 :(得分:0)

你的意思是随机输入字母?几天前我在PHP中写了类似的东西。逻辑如下:

  1. 设S1为包含字母字符“ABC ... XYZ”的字符串。
  2. 设S2为空字符串。
  3. 虽然strlen(S1)> 0,从S1中选择一个随机字符C.将C附加到S2并从S1中删除C.
  4. 返回S2。
  5. 结果是一组随机改组的字符,以最小的CPU负载创建(如果字符串有26个字符,内部循环只需要26次迭代)。