none
请教random一个用法 RRS feed

  • 问题

  • public void Shuffle() { Card[] newDeck = new Card[52]; bool[] assigned = new bool[52]; Random sourceGen = new Random(); for (int i = 0; i< 52; i++;) { int destCard = 0; bool foundCard = false; while (foundCard== false) { destCard = sourceGen.Next(52);//这里random产生非负0~51随机数,而不是0~52随机数,且可以重复的随机数 if (assigned[destCard] == false) foundCard = true; } assigned[destCard] = true; newDeck[destCard] = cards[i]; } newDeck.CopyTo(cards, 0); } }}
    2010年9月5日 7:47

答案

  • 是不是问Random.Next()的用法?

    1.Next(maxValue)表示生成一个“大于等于零”,“小于maxValue”的“整数”。

    Next(52)表示生成一个0~51的整数

    Next(53)表示生成一个0~52的整数

    2.Next(minValue,maxValue)表示生成一个“大于等于minValue”,“小于maxValue”的“整数”。

    Next(1,52)表示生成一个1~51的整数

    Next(1,53)表示生成一个1~52的整数

     

    按照历史习惯,如果想生成1~52这样的随机数,也有人习惯写成"Next(52)+1"

     

    • 已标记为答案 乔峰 2010年9月7日 13:26
    2010年9月6日 15:50

全部回复

  • 你好

    不好意思...你的問題是什麼?


    Chi
    2010年9月5日 8:22
    版主
  • 不知道你说的什么问题
    2010年9月6日 8:59
  • 是不是问Random.Next()的用法?

    1.Next(maxValue)表示生成一个“大于等于零”,“小于maxValue”的“整数”。

    Next(52)表示生成一个0~51的整数

    Next(53)表示生成一个0~52的整数

    2.Next(minValue,maxValue)表示生成一个“大于等于minValue”,“小于maxValue”的“整数”。

    Next(1,52)表示生成一个1~51的整数

    Next(1,53)表示生成一个1~52的整数

     

    按照历史习惯,如果想生成1~52这样的随机数,也有人习惯写成"Next(52)+1"

     

    • 已标记为答案 乔峰 2010年9月7日 13:26
    2010年9月6日 15:50