SQL与魔术

扑克魔术:

随意选取21张牌,让观众随意抽出一张,让观众牢牢记住并放回到其余20张牌中,然后任意洗牌。

然后开始按序发牌,分成三叠,每叠7张。然后将三叠牌给观众看,并让观众确定目标牌在哪一叠中(顺序不可打乱)

然后将目标牌所在的一叠放在三叠牌中间,并再次发牌,规则同上,然后再来一次。记住,最后一次也要观众确认目标牌在哪一叠,并将它所在的一叠放在中间。然后,从该叠牌开始翻牌,并嘴里说:”你要相信魔术你的牌是“,说完这句话时下一张就是目标牌了。

 

下面的SQL就是解出该张牌最终会在哪个位置:

with a as (select rownum p from dual connect by level <= 21)
select p, 7 + ceil((7 + ceil((7 + ceil(p / 3)) / 3)) / 3) from a;

 

结果就是 11。

P    7+CEIL((7+CEIL((7+CEIL(P/3))/3
1    11
2    11
3    11
4    11
5    11
6    11
7    11
8    11
9    11
10    11
11    11
12    11
13    11
14    11
15    11
16    11
17    11
18    11
19    11
20    11
21    11

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值