C# 在一个数组中获取9个不同数字的算法
我需要帮助创建一个算法,使9个随机数。每个数字不得等于任何其他数字。重述为1-9之间的9个随机数 我有这样的想法:C# 在一个数组中获取9个不同数字的算法,c#,algorithm,C#,Algorithm,我需要帮助创建一个算法,使9个随机数。每个数字不得等于任何其他数字。重述为1-9之间的9个随机数 我有这样的想法: int[] numlist = new int[9]; Random rand = new Random(); int temp; foreach (int i in numlist) { temp = rand.Next(1, 10); //check if temp is already a value of a lower index in numlist
int[] numlist = new int[9];
Random rand = new Random();
int temp;
foreach (int i in numlist) {
temp = rand.Next(1, 10);
//check if temp is already a value of a lower index in numlist
//if so, rolls another random number and checks it again...
numlist[i] = temp;
}
我有一个方法,
if
s-inside-for-inside循环,而for-each循环中的循环等等…我觉得,你最好从1..9的列表开始,然后将其洗牌,以获得一个随机顺序
使用
var random=new random();
int[]数组=可枚举的.Range(1,9).ToArray();
对于(int i=array.Length;i>1;i--)
{
//选择要交换的随机元素。
int j=random.Next(i);//0在我看来,你最好从1..9的列表开始,然后将其洗牌,以获得一个随机顺序
使用
var random=new random();
int[]数组=可枚举的.Range(1,9).ToArray();
对于(int i=array.Length;i>1;i--)
{
//选择要交换的随机元素。
int j=random.Next(i);//0如果您知道需要什么值,那么只需OrderBy,它就会随机化这些值
var numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9};
var shuffled = numbers.OrderBy(a => System.Guid.NewGuid()).ToArray();
如果你知道你需要什么样的值,那么只需OrderBy,它就会随机化它们
var numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9};
var shuffled = numbers.OrderBy(a => System.Guid.NewGuid()).ToArray();
从标题中删除标记名从标题中删除标记名击败我。不应该花时间编辑问题…击败我。不应该花时间编辑问题…按NewGuid排序有风险-因为结果不会均匀随机按NewGuid排序有风险-因为结果不会均匀随机