洗扑克算法
⑴ 几种扑克牌洗牌算法
洗牌的
几种话先设定好洗牌方式几种比方对分上下交l以及交织洗牌然扑克牌后用随机数生成函数确定单步洗牌作牌的数量多反复几遍即可。
的一个合理的定义就是算法
一副扑克张牌有种陈列方式。
这样做的好处:
给出的洗牌算算法应该可以等概率地生成这种结果中的一种
⑵ 扑克牌怎么洗牌
假洗牌之抽拉循环洗牌
这是一种不错的利用抽拉洗牌控指整幅牌正体顺序不做改变的洗牌方法,和前面的希腊洗牌不一样的就是这种洗牌法并不会改变特普和波顿的牌。
(1)抽拉洗牌拿牌状,右手抽出最下面六分之一(就是一小叠牌,为了说明方便,就定1/6吧),把它抽拉放到左手牌的上面,同时左手小拇指制作大布雷克,然后拿起布雷克下方刚才剩下的5/6,同时把刚才被放到顶上的1/6牌自然落到左掌心。
(2)然后抽拉布雷克上放那5/6牌下面的一小叠(大概也1/5左右吧,我想说1/6,我怕说得太多了大家糊涂,这次改五分之一,不过这个1/5是指布雷客上方牌的1/5,接下来我再说,都是指布雷克上方的牌哦),把它放到牌顶,同时,注意!这里用无名指制作一个大布雷克,隔开这1/5和下面的4/5,然后抽出下面的4/5,让刚才的1/5自然落下到左手最初那1/6牌的上方。
(3)右手再把拿着的4/5牌放回左手进行抽拉,同时,在放回牌的下面左小拇指大布雷克,动作恢复到动作第(1)步的结尾处,然后重复动作(2)(3)直至把牌洗完,你会发现,你一直在循环的把本应该在下面的牌放到他原来的位置,顾名思义,循环抽拉洗牌。
1.右手食指顶住牌背,拇指和其他三个指头用力夹住牌叠两头。
2.左手掌在牌叠的前端伸平,右手拇指捎放松使大约半副牌落到左手掌上
3.待所有牌都交错落下后,双手将前端左右两叠未交错的牌不推合,而按照原来在上的牌仍在上,原来在下的牌仍在下、已交错洗进的后端牌则在两手滨的遮护下自动退出,从而上下登牌如原来秩序吻合
4.只要运用自然,观众看去牌已洗乱,而实际末洗动一张牌
⑶ 扑克牌洗牌最简单的一种方法
中国牌王郑太顺推荐一种有趣的方法——“
空中鸽尾”方法
1、把牌分成相等的两份,双手各拿一份。双手手指全部向上,食指放在牌的一端,拇指和其余三指各放在牌的两边,并且拇指与中指相对。然后把两手牌的另一端相对顶着。
2、两手把牌抬到与眼相平,徐徐用力,则两手牌接触的一端都会向下弯曲。然后把两手压力略微减少一些,同时迅速把其中一手的牌往旁边移动。这样,两手的牌相对的一端都会弹起,并且会交错咬着。
3、把两手的牌往中间一合,即可完成空中鸽尾式洗牌全过程。
⑷ 洗牌要多少次才能彻底洗开
远不要以为,洗个两三次就能把牌洗开了。很多扑克牌小魔术就利用了三次洗牌远远不能把牌洗开的秘密。比方说,我拿出一副新牌给你,由你来负责洗牌。洗一次。再洗一次。你觉得还没洗开对吧,那就再洗一次。然后,请你偷偷看一眼最上面的那张牌,记下它的花色和点数,然后把它插到这摞牌中间某个位置去,再把整副牌给我。我便能挑出这张被动过的牌。洗牌是门技术活 魔术的原理正如上文所说:把一摞排列有序的牌洗三遍,并不会让整副牌完全无序,排列顺序会有一个很强的规律。移动最上面一张牌的位置会破坏掉这个规律,从而露出马脚来。 为了更方便地做进一步说明,我们下面只用 13 张牌来举例。由于这是一副新牌,初始时这 13 张牌是有序的:你把牌洗开了吗 洗一次牌就相当于把上面这个序列分成前后两半,然后交错构成一个新的序列:你把牌洗开了吗 因此,洗完一次牌后,依次寻找 A, 2, 3, ..., J, Q, K 的位置,你会发现它们形成了两个“上升序列”(分别用两种颜色标了出来)。 那么,再洗一次牌会对这个序列造成什么影响呢?容易看出,第二次洗牌将会把每个上升序列都截成两半,然后再次相交错,得到四个上升序列(分别用四种颜色标了出来):你把牌洗开了吗 如果此时把末尾的那张 7 移到中间去,你会发现这会打破“四个上升序列”的规律。因此,我们很容易辨认出,在下面的扑克牌序列中,7 本该放在后面:你把牌洗开了吗 但是在上面的例子中,这些上升序列都很短,理论上平均长度仅为 13 / 4 = 3.25。因此如果对方洗牌技术不佳,魔术有出错的可能。不过,如果把 52 张牌洗三次,将产生 8 个上升序列,平均每个上升序列的长度为 52 / 8 = 6.5,魔术表演的问题就不大了。 五次洗牌也洗不均匀 我们可以借助“上升序列”的思路来证明,五次洗牌也不能把牌彻底洗均匀,因为有一些排列永远不能仅用五次洗牌得到。不妨假设初始时扑克牌的顺序是 1, 2, 3, …, 51, 52,五次洗牌后最多会产生 25 = 32 个上升序列。但是 52, 51, …, 3, 2, 1 这个排列中有 52 个上升序列,因此五次洗牌是绝对洗不出这样的排列的。事实上,所有上升序列数量超过 32 的排列都是五次洗牌无法得到的,这就证明了五次洗牌也不能把牌洗均匀。 看来,要想把牌洗开,六次是必需的了。 七次洗牌才足够 那么,究竟要洗多少次牌,才能让所有排列出现的概率大致相同呢?你别说,还真有人做过这样的研究。 1992 年,佩尔西·戴康尼斯(Persi Diaconis),美国数学家兼专业魔术师,与哥伦比亚大学的戴夫·拜耳(Dave Bayer)一道,为交叉洗牌法建立了一个数学模型,分析了包括上升序列在内的扑克牌排列性质,定义了 m 次洗牌后得到的排列分布与平均分布之间的“总变差距离”,最后发表了一篇 20 页长的论文。他们计算出,当扑克牌有 52 张,洗牌次数分别为 1, 2, ..., 10 时,总变差距离分别为 1.000, 1.000, 1.000, 1.000, 0.924, 0.614, 0.334, 0.167, 0.085 和 0.043。可见,五次洗牌才能让整副牌呈现出随机性,直到第七次洗牌才会让随机性显着增加;并且在此之后,总变差距离将大致以 1/2 的比例依次递减。因而他们的结论就是:七次洗牌才足够随机。 他们还对这个问题进行了渐近意义上的分析:当 n 足够大时,需要的洗牌次数大约为 3 log2n / 2。
⑸ 什么是扑克的上而下式洗牌法
逐张洗牌的技法:
在通常情况下,这种技法被称之为“滥”,主要不但可以控制,还是上而下式控牌法的基础,因而,这是扑克牌游戏中不可缺少的,是需要练习的。
此技法是在洗牌过程中,用左手拇指从右手中逐张抽出牌,放在左手的特普的一种方法。
要进行这种技法,先要把右手的一组牌拿到左手前面,轻轻将左手拇指贴在左手的特普。
此时右手抓住牌的两端,以防止牌被多抽出。随后,以左手拇指逐张抽出,开始洗牌。
所谓“因乔戈”,是在洗牌过程中,将一张(或数张)牌推到(牌的内端)小拇指这边的技法。这种技法比较简单。
在上而下式洗牌法中,如果想要进行“因乔戈”,首先右手要靠近牌的内端,再把右手的一组牌放到左手那组上面。
然后左手拇指拉到特普的后面,那张牌顺便也推到了内端。上面再放洗过牌。
为了使突出的牌更加隐蔽,这组牌就不必太整齐。
需要注意的是,左手小指尖要贴着突出的牌。在施展“因乔戈”时,洗牌的步骤也不可打乱。
下切牌:这是进行“因乔戈”时,抽出了下半部分牌,放到特普的技法,右手拿“因乔戈”后的一组牌。
右手拇指尖贴在“因乔戈”牌边缘,接着右手稍微向外推出“因乔戈”下方的一组牌,并用中指与无名指压住外端。
在推出时候,右手拿着的一组要举起来,并放到另一组特普,然后用右手整理牌。
以此方式进行“因乔戈”后,牌便会转移到波顿,下方的牌便会转移到特普。
下切牌也可在一组牌切牌后取出下半部分时使用。
让某一个人抽出一张牌,在别人记牌点的这一瞬间,你要进行上而下式洗牌。当洗到一半时,向那人伸出左手,让他把抽出的牌放到左手牌中,牌放好后,开始洗牌。
洗牌时,先从右手的三张牌逐张洗,放在左手的特普(别人所选的牌)上,这就是“滥”的技巧。
接着将剩余的牌实施“因乔戈”。
然后,把右手中的牌进行洗牌后,放到“因乔戈”的牌上面。
将“因乔戈”牌的下面一组,进行下切牌,而后放到特普上,这样,所选的牌也就是从特普位置算起的第四张。后面的处理方法顺其自然。
如果需要把选出的牌转移到特普位置,特普一组要翻过来,并且正面向上,展开3~4张波顿牌给他看,证明这里没有他所选的牌。然后合上牌,叠整齐。
接着将另一组翻过来并展示,让那个人看其中也没有所选的牌。然后把牌翻回去,并放入波顿位置叠齐。这只是证明给其他人看,牌并不在里面。
要将别人的牌移到特普,虽然可立刻将那人牌上方的牌加以“因乔戈”之后再洗牌,然后把“因乔戈”之后的牌进行切牌,使牌方便转移到特普位置。
要将牌转移到波顿,可以按照上述方法转移到特普后,再进行上而下式洗牌,先把特普的牌向左手洗一张,然后洗剩余的牌,这样,就成功转移到了波顿。
上而下式布雷克的控制。
这种方法与上述方法是相同的。
将“因乔戈”之后的牌下半部分进行下切牌,随后,在“因乔戈”之后的牌与下半部分牌之间设置布雷克,并保持布雷克。而后进行上而下式洗牌,把布雷克下面的一组牌转移到特普位置,这就是与方法1的区别所在。
按照方法1,让某人放好牌后,在上面放三张牌,再将下面一张进行“因乔戈”之后,开始洗牌。
右手稍微用力使牌的上端叠齐,然后以右手拿着左手一组,右手拇指间贴于“因乔戈”之后的牌的内端,右手中指则贴于一组的外端。
一方面将“因乔戈“之后的牌,用拇指向特普的位置推出一些,一方面推入另一组中。
这样,“因乔戈”后面的牌与下方一组牌之间,也就造成了布雷克。
左手拇指保持好布雷克。再用右手拇指、中指拿起另外的一组,进行上而下式洗牌,待洗到布雷克时,布雷克下面的牌就放到特普位置上。
按照上面的方法进行,那人所选的牌就会转移到从特普算起的第四张。
此后的操作方法与方法1相同。
这种方法给人一种彻底洗牌的感觉,因而效果会比1的方法强。
自然而轻松的控制。
此方法是“因乔戈”的变形,但比“因乔戈”简单一些,也更自然一些。
让某人抽出一张牌后,将一组正面朝下放在左手中。
这时,左手食指要突出来,用右手拿起上半部分,请观众将所选的牌,放在左手下面一组牌的特普位置,把右手的一组牌慢慢放到左手下面一组的上面,这样,上面一组牌就会滑到下面一组的特普位置,靠近波顿的部分就会突出来。
此时用右手拿起左手的一组牌,摆出上而下式洗牌的姿态。这种动作姿态,像是把那人牌上方的牌施予“因乔戈”一样。
然后,右手拇指进入突出牌的下面,设置布雷克后,进行上而下式洗牌,这样一来,所选的牌便会转移到特普。
交叉换牌的控牌技法
在整副牌中,把三张Q抽出来,表面向上拿在左手中。
然后把三张Q背面向上,理顺以后,在上面放置正面向上的A。把这7张牌展开,并让观众看清楚三张Q是背面向上的。
此时,把这7张牌放回牌中,小拇指放在最下面一张A牌与其它牌之间,以设置布雷克,从上面叠齐后,悄悄把布雷克下面的6张牌翻过来,方法如下:
左手食指稍微弯曲,并贴在牌的下面,拉出布雷克下面的牌,然后慢慢旋转,使这6张牌左侧转到右侧,以上动作只可以暗中进行,不可被其他人发现。
牌理齐后,右手松开。把下面的三张牌背面向上放入一人手中,他便以为是3张Q。然后把剩余的牌翻过来背面向上,把左手中的波顿的牌抽出来,让其他人看,然后放入那人手上的牌中。
这样,那个人手中的牌就都变成了A牌。
⑹ 如何洗扑克牌
如果玩牌的人却不会洗牌,那是一件多么丢人的事情。今天,几分钟网来教你如何洗扑克牌。
您将需要经常的锻炼一副扑克牌1、将散乱在桌上的扑克,按同一个方向整理成一叠。
2、然后以左手拿牌为例,左手拿起牌,右手在整叠牌底层抽取适量牌放在最上面,重复抽取即可。
3、如果你认为牌还不够散,那么用弹牌的方法,将整叠牌分成两部分。左右手各拿一叠。
4、将手上的两叠纸牌都适量的弯曲。
提示:你可以把牌向外弯曲或者向内弯曲都可以。
5、最后慢慢的松手,使两叠牌混合在一起,整理好牌即可。
您知道吗?扑克牌最初称作“叶子戏”是由唐代天文学家张遂发明的,因为那时纸牌只有树叶那么大。
⑺ 怎样洗牌能把好牌洗到一块
这是一种熟悉的洗牌手法.刚凭在这里解释是不足够的.要靠你自己多加练习才会将牌切到上面
例如说:扑克牌你想要的牌首先不管你知不知道这张牌是什么.但你知道牌放到你的牌中.
在洗牌的时候是要靠你纯熟的洗牌手法.用手指插在你想要的牌哪里首先将牌切到最底的一张.
然后在别人的面前.你不断的洗上边的牌.哪么你的牌就一直在底牌中.
当你想要将底牌切到最上面的一张时......
你只需要将底牌切到整副牌的中间的时候.你也要用(尾指)按着你想要的牌的上面(意思就是将底牌切到中间时用手指按住你想要的牌).
这时候扑克分为二分之一.....意思就是:你想要的牌在中间.而你尾指从边上按住牌边.再在切一次牌的时候.就从尾指按住的下半份的牌抽到最顶.哪你想要的牌就到了最上面.
要详细说起来.还真的累死人.但表演一次你看.简单到只用5秒!
⑻ C语言 洗牌算法
/*洗牌程序:用任何语言,随机分配52张扑克牌到52个位置上,每个位置只容许放一张牌
用1-13表示红心A--K
14-26表示黑桃A,2,3-,Q,K
27-39表示方块A,2,3-,Q,K
40-52表示黑桃A,2,3-,Q,K
也就是生成1-52不重复的随机数,放到数组中*/
#include<iomanip.h>
#include<stdlib.h>
#include<time.h>
const int N=52;
static int a[N];
int create(int n)
{
return (1+rand()%52);
}
int main()
{
int i,j;
srand(time(0));
for(i=0;i<N;++i)
{
a[i]=create(N);
for(j=0;j<i;++j)
{
if(a[j]==a[i])
{
a[i]=(a[i]+1)%52;
}
}
cout<<setw(5)<<a[i];
}
cout<<endl;
return 0;
}
⑼ 扑克洗牌手法
1)抽拉洗牌拿牌状,右手抽出最下面六分之一(就是一小叠牌,为了说明方便,就定1/6吧),把它抽拉放到左手牌的上面,同时左手小拇指制作大布雷克,然后拿起布雷克下方刚才剩下的5/6,同时把刚才被放到顶上的1/6牌自然落到左掌心。 (2)然后抽拉布雷克上放那5/6牌下面的一小叠(大概也1/5左右吧,我想说1/6,我怕说得太多了大家糊涂,这次改五分之一,不过这个1/5是指布雷客上方牌的1/5,接下来我再说,都是指布雷克上方的牌哦),把它放到牌顶,同时,注意!这里用无名指制作一个大布雷克,隔开这1/5和下面的4/5,然后抽出下面的4/5,让刚才的1/5自然落下到左手最初那1/6牌的上方。 (3)右手再把拿着的4/5牌放回左手进行抽拉,同时,在放回牌的下面左小拇指大布雷克,动作恢复到动作第(1)步的结尾处,然后重复动作(2)(3)直至把牌洗完,你会发现,你一直在循环的把本应该在下面的牌放到他原来的位置,顾名思义,循环抽拉洗牌。 1.右手食指顶住牌背,拇指和其他三个指头用力夹住牌叠两头。 2.左手掌在牌叠的前端伸平,右手拇指捎放松使大约半副牌落到左手掌上 3.待所有牌都交错落下后,双手将前端左右两叠未交错的牌不推合,而按照原来在上的牌仍在上,原来在下的牌仍在下、已交错洗进的后端牌则在两手滨的遮护下自动退出,从而上下登牌如原来秩序吻合 4.只要运用自然,观众看去牌已洗乱,而实际末洗动一张牌