返回首页

我可以从数组生成一个随机序列,使每个数字序列中出现,只出现一次.... (使用C#)

例如:
'1','9','3','7'
'9','3','7','1'...等等......

如何做到这一点?...

提前谢谢......

的问候,

回答

评论会员:游客 时间:2012/02/07
|imgsrc=http://www.orcode.com/img/ico/smiley_smile.gif]给你一个例子,如何从列表随机项目。您可以使用此方法来获取数组内的随机位置,就像得到一个元素。一旦做到这一点,你可以删除该项目的清单,以便它不会再次显示:RaviRanjankr:尝试{A}]
BillWoodruff:我想你已经得到了一些很好的答案,也许你需要的一切,所以才忽略这个答案,如果它分心{S0的} ...但我会发表回应,我认为是太多的评论,无论如何。

在情况下,你要预先计算所有排列:关于CP,只是搜索这里有很好的资源。你可以找到使用递归的文章,不使用递归,使用泛型。我推荐这篇文章中使用泛型:[{A2的}

虽然我认为这是不可能的,这里是我的反应要考虑的情况下,你不想实际操作数组中的元素的顺序。

你有一个数字数组,如:私人的int [] intAry =新的int [] {1,5,3,6};:或者是您号码的清单,是指在现有阵列的某些指标?

使用数字序列是固定大小?

如果它是的(是的,不可能)的情况下,你正打算将您的随机序列生成时间根据使用的"炒"数字序列指数列表#列印元素1阵列的一个子集:这是一个不同的场景!

当你说"生成一个随机序列,这是否意味着它没关系shuffle的随机数组中的元素,或者,你说你要生成一个新的数组?或只是一些新的"炒"数字表示?

鉴于可能的排列阵列中的所有项目集#N的阶乘,给你的,例如,只有24种可能的独特的组合为4个元素的数组,如何你要处理重复的结果,至少每#N因子组合呢?好吧,也许不要紧?会是好了,例如,为了得到相同的随机序列连续两次:可以很容易地编码

最后,如​​果你正在处理一个数组元素的固定数量,数量是很小的,你需要经常访问的随机序列,你可能只考虑所有可能的随机序列generaring一次,在一个列表中存储的,然后从该列表中随机选择:爱德华・卢
评论会员:游客 时间:2012/02/07
试试这个codeprelang="C#"spanclass="code-keyword"int/span[]numbers={spanclass="code-digit"5/span,spanclass="code-digit"4/span,spanclass="code-digit"2/span,spanclass="code-digit"23/span,spanclass="code-digit"7/span,spanclass="code-digit"9/span};Randomran=spanclass="code-keyword"new/spanRandom(); spanclass="code-keyword"for/span(spanclass="code-keyword"int/spani=spanclass="code-digit"0/span;i<numbers.Length;i++){Console.Write(ran.Next(numbers));}/pre/code-爱德华