关于扑克牌的一道算法题

一道有趣的扑克牌算法题,游戏规则是不断从牌顶拿牌放桌上,再将牌顶牌放到牌底,直至所有牌放桌上。通过分析,可以找到打乱后的位置数组,从而还原扑克牌原始顺序。提供的解决方案通过创建位置数组并进行测试,成功实现了扑克牌顺序的恢复。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目是这样的
  • 有不限数量的扑克牌,要用这些扑克牌做一个游戏,规则很简单:首先从牌顶拿出一张牌放到桌上,然后再从牌顶拿出一张牌到牌底,然后再从牌顶拿出一张牌放到桌上,之后再从牌顶拿出一张牌到牌底,不断重复这个过程,直到扑克牌全部放到桌上,现在给出桌上扑克牌的顺序,然后求出原来扑克牌的顺序
  • 我这个人对算法不是特别敏感,但是对于一些很有意思的问题也会去思考,研究,下面是我给出的算法:
  • 这个问题可以这么来思考,原来的扑克牌是顺序的,可以假设为一个数组,这个数组就是 [0,1,2,3,4,5…],这个数组的索引实际上也反映了原本扑克牌的位置,某种意义上来讲就是位置数组,如果按照上面的游戏规则之后,这个数组肯定是会被打乱的,但是即使这样,每个索引还是会对应着扑克牌,于是第一步可以先找出打乱之后的位置数组,得到位置数组,然后根据位置数组就可以还原原来扑克牌的顺序了
  • 代码如下:
// 获取位置数组
function puke(len){
   
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值