社区
数据结构与算法
帖子详情
关于牌类游戏洗牌算法一问:怎样才算把牌洗均匀了呢?
icessl
2001-12-24 07:42:13
拿桥牌为例,共有 52 张牌,发牌前总要洗牌,洗牌用的随机函数是伪随机函数。
那么,怎样洗牌能洗均匀?怎样判断(或统计地看)一副牌(或若干副牌)是否洗
均匀了呢?
...全文
370
7
打赏
收藏
关于牌类游戏洗牌算法一问:怎样才算把牌洗均匀了呢?
拿桥牌为例,共有 52 张牌,发牌前总要洗牌,洗牌用的随机函数是伪随机函数。 那么,怎样洗牌能洗均匀?怎样判断(或统计地看)一副牌(或若干副牌)是否洗 均匀了呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
icessl
2002-01-01
打赏
举报
回复
谢谢。
icessl
2001-12-26
打赏
举报
回复
to Arter(阿蒂尔):
洗牌我会洗。我的问题是怎样才算洗匀?
比如你说的“这样多次”,那多少次最合适?我们知道,次数太少,显然没有洗匀,次数太多,又浪费时间。到底要多少次?如何计算它的“均匀度”?
Arter
2001-12-26
打赏
举报
回复
一般说:3-5次!(Best 3)
(1,2,3,...,52)-->(27,1,28,2,29,3,...,52,26)
axial
2001-12-26
打赏
举报
回复
先搞清楚什么叫均匀!!!
洗牌的目的是使下一张牌具有不可预测性,且每一张没有抽出来的牌,在下一张出现的的可能性相等。
所以如果不记牌的话,那么对于下一次洗不洗就无所谓。
比如前面一拨人打完后,不洗,直接叠上。
那么对下一拨人而言,这就可以算是均匀的。
wagnerwash
2001-12-26
打赏
举报
回复
口合口合!还真有人用手洗牌的方式设计洗牌算法呀?
请参考STL中的random_shuffle函数。
统计的判断洗牌是否均匀就是判断任意N张牌的各种位置排列组合的概率是否与理论值相符?
最简单的情况:N=1时。就是判断每张牌出现在每个位置的概率是否相等?
Arter
2001-12-24
打赏
举报
回复
每次都将奇数号的按序抽出(即从上往下第1,3,5,7,...,51)放在下面变成
(1,2,3,....52)-->(2,4,6,8,...,52,1,3,5,...,51)
这样多次!
再循环移位(切牌)即可!
one_add_one
2001-12-24
打赏
举报
回复
随机交换
洗
牌
算
法
-Fisher–Yates
算
法为什么好?
最近因为要做一个程序用到
洗
牌
,就去研究了一下
洗
牌
算
法
。问题很简单,有一副扑克
牌
,执行一个
算
法,打乱他。简单的问题往往隐藏了重要信息,比如这里的,打乱,什么才叫乱?首先,设定我们已经拥有了系统提供的...
面试官:会玩
牌
吧?给我讲讲
洗
牌
算
法
和它的应用场景吧!
有一次参加面试,面试官问我:“会玩
牌
吧?” 内心:“咋滴,这是要玩德州扑克(或者炸金花),赢了他就能通过面试么?” 结果…… 没想到面试官的下一句话:“给我讲讲
洗
...其实
洗
牌
算
法
就是一种随机
算
法,你...
C++11新式
洗
牌
std::shuffle与老式
洗
牌
函数std::random_shuffle的区别
洗
牌
算
法
是项目开发中常用的一种
算
法,它和随机数有着密不可分的关系,比如我们从报名参与活动的前10个用户中选取一个人发放幸运奖,这时可以从[1, 10] 范围内随机一个数来确定幸运儿;如果是抽取两个人呢?那就随机...
全体起立!给我讲讲
洗
牌
算
法
和它的应用场景吧!
重磅干货,第一时间送达 有一次参加面试,面试官问我:“会玩
牌
吧?... 没想到面试官的下一句话:“给我讲讲
洗
牌
算
法
以及它的应用场景吧!” 哈哈,以上内容纯属虚构 背景 本文产生背景是看...
关于
洗
牌
的研究(三)——
洗
牌
过程建模
关于
洗
牌
的研究(一)——平常你都是怎么
洗
牌
的? 本篇是第三篇:
洗
牌
过程建模 在上一篇文章中,我们介绍了基于熵的关于
洗
乱的基本定义,还有对于一次
洗
牌
能否
洗
乱等问题的一个估
算
,
算
是对
洗
牌
这个过程的数学...
数据结构与算法
33,008
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章