java – 正确的逻辑,从卡座中随机选择一张卡,直到选中所有卡
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 正确的逻辑,从卡座中随机选择一张卡,直到选中所有卡,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1129字,纯文字阅读大概需要2分钟。
内容图文
![java – 正确的逻辑,从卡座中随机选择一张卡,直到选中所有卡](/upload/InfoBanner/zyjiaocheng/744/6a4d9840789248aa8d2ae9138e9d2ad9.jpg)
我在这里需要一些建议.我想创建一个逻辑,从一副52张牌中随机选择一张牌,直到选中所有牌,如果使用了所有52张牌,我需要重新洗牌并重新开始.
我已经为此创建了一个工作正常的逻辑,但我认为应该有更好的方法来做到这一点.一些MMM – 数学硕士思想可以结束我的痛苦.
这是逻辑:
>创建一个空的arraylist来存储所有52张卡以供检查
>随机选择一张卡片,检查是否存在于arraylist中
>如果是,请重复步骤2
>如果不是,请将卡添加到arraylist
>如果arraylist大小为52,则清空arraylist
ArrayList<Integer> list = new ArrayList<Integer>();
int card = -1;
do {
Random random = new Random();
card = random.nextInt(52);
} while (list.contains(card) == true);
// code for drawing the card by the number
list.add(card);
这个逻辑的唯一问题是当只剩下一张卡时,随机获得该卡的可能性不到2%.系统花了很多时间找到卡.它继续检查while while循环.
请提出改进??建议并感谢您的时间.
解决方法:
一种选择是以包含所有卡的完整arraylist开始,然后删除随机索引,直到列表为空,此时您将重新填充它.
例:
ArrayList<Integer> list = new ArrayList<Integer>();
for(int i=0;i<52;i++){
list.add(i+1);
}
int c = 52;
Random random = new Random();
while(c>0){
int r = random.nextInt(c--);
int card = list.get(r);
list.remove(r);
}
resetList();
内容总结
以上是互联网集市为您收集整理的java – 正确的逻辑,从卡座中随机选择一张卡,直到选中所有卡全部内容,希望文章能够帮你解决java – 正确的逻辑,从卡座中随机选择一张卡,直到选中所有卡所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。