【问题标题】:C# method and table random numbers [closed]C#方法和表随机数[关闭]
【发布时间】:2012-01-21 20:27:39
【问题描述】:

我有一种方法可以将数字 1 到 9 随机排列。每个数字只出现一次。该方法应返回一个整数表。

这是我面对墙的代码,我对这段代码没有想法。 我知道这段代码是 100% 错误的。

    class Program
    {
        static void Main(string[] args)
        {
            int luvut = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
            Console.WriteLine(luvut);
            Console.ReadKey();
        }

        private static int Kuuluuko(int luvut)
        {
            for (int i = 0; i < luvut.Length; i++)
            {

                return;

            }
        }
    }
}

【问题讨论】:

  • 所以Kuuluuko 应该随机化它们?你试过什么?另外,如果你编译这个,你会得到什么错误?
  • 请详细说明您想做什么,不清楚的问题

标签: c#


【解决方案1】:
var randomNumbers = Enumerable.Range(1,9).OrderBy(n => Guid.NewGuid()).ToList();

【讨论】:

  • 查看示例代码,我不确定仅仅给出一个有效的答案是否会有很大帮助:)
  • 能不能把打洞方法代码放上来
  • @DannyChen:OP 是 C# 的一个真正的新手,你的代码很棒,但这对他有帮助吗?
【解决方案2】:

这样的事情呢?列一个清单,并在用完时从该清单中删除这些数字。就像从碗里画数字或类似的东西:)

var numbers = new List<int>(new[]{ 1, 2, 3, 4, 5, 6, 7, 8, 9});
var randomnumbers = new List<int>();
var rnd = new Random();
while( numbers.Count > 0 ){
  var index = rnd.Next(0, numbers.Count);
  randomnumbers.Add(numbers[index]);
  numbers.RemoveAt(index);
}
//randomnumbers now contain the random sequence

【讨论】:

    【解决方案3】:

    您的代码有几个错误,甚至没有编译。这是正在运行的代码,并为您提供了您所期望的:

    class Program
    {
        static void Main(string[] args)
        {
            int[] luvut = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
            Console.WriteLine(Kuuluuko(luvut));
            Console.ReadKey();
        }
        private static int Kuuluuko(int[] luvut)
        {
            var random = new Random();
            return luvut[random.Next(0, luvut.Length)];
        }
    }
    

    【讨论】:

    • 是吗?它仍然没有调用 Kuuluuko 方法:)
    • 啊,现在可以了!但是,它仍然只返回列表中的一个 int,而不是重新排序的列表。
    • @Hybrid:是的,我错过了给 Kuuluuko 的电话(这在芬兰语中的意思)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 2016-09-02
    • 1970-01-01
    • 1970-01-01
    • 2015-02-10
    • 1970-01-01
    相关资源
    最近更新 更多