数组的字符串怎么随机组合

f152520843 2012-02-24 05:08:51

string[] orders = new string[]{ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q",
"r", "s", "t", "u", "v", "w", "x", "y", "z"};


大虾们,请问怎么让6个字符串随机组合?
...全文
300 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
[Quote=引用楼主 f152520843 的回复:]
C# code

string[] orders = new string[]{ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q",
"r", "s", "t", "u", "……
[/Quote]

很简单。要想让6个字符串全排列组合,那么首先让5个盘排列组合,然后把剩下的一个插入每一个结果中的各个空档中(6个位置)中。因此假设5个字符串有n种组合结果,那么6个字符串的全排列组合就有6*n种结果。

你只要写一个程序,一目了然地看出这个思路就对了。

写程序不是目标,你的程序比较清晰、既有表现力这才是重要的目标。有表现力的程序都是非常朴实的,基于大量(好几年)逻辑训练,所以需要有个好的学校(即使不是学软件的)。如果你只是从培训班学过编程,可能写出来的程序倾向于一团糨子。
叶子 2012-02-24
  • 打赏
  • 举报
回复

--发个SQL SERVER 版本的
declare @sql varchar(6) set @sql=''

select top 6 @sql=@sql+char(number) from master..spt_values
where number between 48 and 57 or number between 97 and 122
and type='p' order by newid()

select @sql
go 10

/*
60xrya
dvs01k
zkbgt6
f4siwr
8gihc9
gw3kdq
hg4q18
ng0p8f
o7dnfa
d1vx9q
*/
色拉油 2012-02-24
  • 打赏
  • 举报
回复
for (int i = 0; i < 4; i++) 改为 for (int i = 0; i < 6; i++)就是六位的了

[Quote=引用 4 楼 thedolphin 的回复:]

C# code
private string GetRandomCode()
{
char[] chars = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };

string code = string.Empty;

for (int i ……
[/Quote]
色拉油 2012-02-24
  • 打赏
  • 举报
回复
   private string GetRandomCode()
{
char[] chars = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };

string code = string.Empty;

for (int i = 0; i < 4; i++)
{
Random rnd = new Random(GetRandomSeed());
code += chars[rnd.Next(0, 10)].ToString();
}

return code;
}

private int GetRandomSeed()
{
byte[] bytes = new byte[4];
System.Security.Cryptography.RNGCryptoServiceProvider rng = new System.Security.Cryptography.RNGCryptoServiceProvider();
rng.GetBytes(bytes);
return BitConverter.ToInt32(bytes, 0);
}
f152520843 2012-02-24
  • 打赏
  • 举报
回复
没用过算法!
bdmh 2012-02-24
  • 打赏
  • 举报
回复
全排列组合算法,网上搜去,有
zhouxingyu896 2012-02-24
  • 打赏
  • 举报
回复
这个问题 算法可以解决的
利用高中排列组合知识

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧