蓝桥杯 省赛 杨辉三角形 python组 找规律+二分查找+组合数(1)

因为要找出第一次N出现的位置,根据对称性可知,N出现的位置必定在左边,因此只考虑左半边位置即可。因为越靠中间的数越大,所以我们可以从最中间的数,也就是从对称轴位置的数开始找。怎么找呢?斜着找。没错,就是斜着找。

我们先将三角形的右半部分去掉,然后再区分开每一斜行。

在这里插入图片描述

为什么要斜着找?

因为越靠近里面的斜行每一元素的值越大,而且总是较先出现的。以上图为例,6在倒数第二斜行出现了,他对应的位置是第5行第3列,也在倒数第三斜行出现了,对的位置是第7行第2列。很显然,倒数第二斜行的6的位置明显后于前者。出现这种情况的原因是每一斜行的增长速度不同,越靠近内行的数值增长速度越快。打个比方,同样做完一道题,内行的15分钟就做完了,外行的可能要花上1个小时。

为什么可以斜着找?

因为它们是有规律的:每一斜行的元素对应的列位置都没变。还是以6为例,6在第3列,6的斜行下一个元素10同样在第三列位置。(6:C(4, 2), 10:C(5, 2))。最后当我们找到元素后根据组合数规律就能反推出该元素在整个杨辉三角形的位置。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值