这个是C#基础第一章后面的2道题目,我不会做,希望大侠指点一下1.模拟一个骰子在连续一万次的投掷中,一到六点出现次数
2.利用随机数产生器rand,设计一个程序由电脑发桥牌给4位玩家,并输出每位玩家所分的的花色和点数。梅花以C,方块以D,红心以H,黑桃以S表示。牌点A,2,3,4,5,6,7,8,9,10,J,Q,K表示。
如,输出结果如下:
C2 C4 C7 ...
C3 C8 CJ...
CQ DK H4...
CA C5 C9...第一题我不是很明白什么意思,第二题我对随机数不是很懂呀,这本书上有一道关于随机数的例子,略微看懂点,我不知道随机数出来之后怎么把它显示成C2之类的,难道2组随机数,一组显示C,D,H,S,第二组显示A,1,2,....10,J,Q,K么,但是还有个跟重要的问题,没一次显示一组随机数,拿我怎么才能让他们不重复呢?已经显示了一次C3,要是在显示一次C3怎么办,总不能每次显示就和前面显示出来的数组对比一下,那样也太傻了
还有关于书上那套随机数的例子我也不是很看得懂string letterGuess;
Random r = new Random(unchecked((int)DateTime.Now.Ticks));
secretLetter = ((char)r.Next(65, 91)).ToString();DateTime.Now是当前时间吧
Ticks是什么意思呀,我看MSDN不是很看得懂
int强制类型转换是为了什么呀?不转换,Ticks不也出了一组随机数么,是不是因为random(int32)构造函数就是这么些的呀,所以我们要强制类型转换之后传一组int数字进去
unchecked这个MSDN里我看懂了,自己也测试过了
random这个类看过MSDN里的说明和他的一些方法,但还是有点迷糊,不明白他的原理,他随即数为什么不能自己产生而要穿一组int进去,
ToString()方法我也不是很了解,为什么要先强制转换成CHAR之后才tostring;这个好像牵扯到的东西比较广吧?牵扯到类型转换,数值和对象的概念吧?,我对convert;(char);int.parse();这个几个有什么区别都不了解,我看MSDN介绍,ToString();方法和拿3种不一样,原来他不是强制类型转换,是返回对象名字,这个问题好像牵扯的比较广吧,我自己看多看看书吧,前面几个问题那位大侠给我解释一下呀,新手初学很疑惑,谢谢了。

解决方案 »

  1.   


    1、
    Random ran = new Random();
    for(int i=0;i<10000;i++)
    {
        if(ran.Next(0,6)==6)
    {
    break;
    }
    }
      

  2.   

    secretLetter = ((char)r.Next(65, 91)).ToString();
    先Char的原因是通过这种转换将随机生成的65-91之间的数字转换成A-Z之间的字符了,再ToString()就很好理解了。其它的自己好好想想就不难理解了。
      

  3.   

    还有,学会使用MSDN 帮助手册,学会它的使用可以帮你解决80%以上的疑问,减少90%以上的提问和等待时间。
      

  4.   


    明白了,谢谢,
    我的2010MSDN看起来好复杂啊,大概是我添加的文档太多了,我应该就保留一个.NET Framework4-中文,和C#这2个文档,其他都删除了,我想会好很多
      

  5.   

    2.利用随机数产生器rand,设计一个程序由电脑发桥牌给4位玩家,并输出每位玩家所分的的花色和点数。梅花以C,方块以D,红心以H,黑桃以S表示。牌点A,2,3,4,5,6,7,8,9,10,J,Q,K表示。
    如,输出结果如下:
    C2 C4 C7 ...
    C3 C8 CJ...
    CQ DK H4...
    CA C5 C9...
    哪位哥哥姐姐给点提示呀,怎么让我产生的随机数不重复啊。
      

  6.   

    怎么让我产生的随机数不重复啊。可以把产生的随机数保存起来,产生出随机数后 先查看是不是重复,不重复就要了这个数,否则忽略改数可以试用的数据结构有hashtable,list等