2011-12-16 50 views
-1

我已经把数字1到9以随机顺序。每个数字只出现一次。该方法应该返回一个整数表。C#方法和表随机数

这是我的代码,面向墙壁,我用这个代码跑出了想法。 我知道这段代码是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; 

      } 
     } 
    } 
} 
+0

因此`Kuuluuko`应该随机化他们?你有什么尝试?另外如果你编译这个错误,你会得到什么? – Prescott 2011-12-16 09:18:01

+0

看到Fisher-Yates shuffle ... – 2011-12-16 09:18:02

+0

请详细解释一下你想做什么,不清楚问题 – 2011-12-16 09:18:43

回答

1
var randomNumbers = Enumerable.Range(1,9).OrderBy(n => Guid.NewGuid()).ToList(); 
0

什么这样的事情?制作一份清单,并在您使用清单时删除该清单中的数字。就像从碗里画数字或类似的东西:)

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 
0

你的代码有几个错误,甚至没有编译。这里是代码运行,并给你你所期望的:

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)]; 
    } 
}