java 21点游戏中 如何实现玩家和电脑所得到的牌不重复呢??

要求花色和点数都不一样哦,麻烦了,我要这个问题的详细代码,不要整个游戏的代码。
2026年09月22日 19:04
有5个网友回答
网友(1):

写一个判断啊,再发之前进行判断,如果牌面重复则从新获得随机牌
可以采用类似随机数在判断的原理
在统计学的不同技术中需要使用随机数,比如在从统计总体中抽取有代
随机数
表性的样本的时候,或者在将实验动物分配到不同的试验组的过程中,或者在进行蒙特卡罗模拟法计算的时候等等。

产生随机数有多种不同的方法。这些方法被称为随机数发生器。随机数最重要的特性是:它所产生的后面的那个数与前面的那个数毫无关系。

真正的随机数是使用物理现象产生的:比如掷钱币、骰子、转轮、使用电子元件的噪音、核裂变等等。这样的随机数发生器叫做物理性随机数发生器,它们的缺点是技术要求比较高。

在实际应用中往往使用伪随机数就足够了。这些数列是“似乎”随机的数,实际上它们是通过一个固定的、可以重复的计算方法产生的。计算机或计算器产生的随机数有很长的周期性。它们不真正地随机,因为它们实际上是可以计算出来的,但是它们具有类似于随机数的统计特征。这样的发生器叫做伪随机数发生器。

在真正关键性的应用中,比如在密码学中,人们一般使用真正的随机数。

C语言、C++、C#、Java、Matlab等程序语言和软件中都有对应的随机数生成函数,如rand等。

网友(2):

54张牌,去除2张鬼,还有52张,把它看成1-52,这52个数字,放在一个数组中int[] cards = new int[] {1,2,。。。,52};//有无这个数组都没关系。
设定一个list用于存放已经发的牌。
发牌时,从1-52中随机取一个数字,如果这个数字不在list中则允许发这张,并把这个数放到list里,以后同此逻辑。

网友(3):

你是问编程问题么?每次抽样都是一个不放回抽样过程啊。
用户抽样的时候,第一张牌的抽样概率是1/52, 如果没抽中,下一张拍的抽样概率是1/51,直道抽中;
电脑的抽样是从1/51开始。

这是第一轮,抽中的拍去除,第儿轮抽样用户从1/50的概率起抽,依次轮训。

网友(4):

1,如果你是比较 所有的牌都不重复,可以分别放在两个数组里面,判断数组中是否有相等的值;
2,如果只是比较当前一轮发的牌中是否有重复,就直接比较就好,直到产生不一样的值

网友(5):

给每一张牌设置一个标志位,已经有人占用该标志位了,就进行重新选牌操作