数学在优惠券上的应用
从小父母就教育我,学好数理化,走遍天下都不怕。
一直以为父母都是在骗我的,数学除了买东西时算算价钱还有啥用处?
长大后,才发现数学的用处除了买东西的时候算算价钱,还可以让东西更优惠!
之前收集过美国一家连锁店的优惠券(为了不让大家滥用优惠券,店名保密),通过优惠券的码发现他们家生成优惠码的规律。
某家的优惠码基本是这个规律:47000RRRRRCODEZ
- RRRRR:代表随机号码,比如12345
- CODE:4位 code,这是最主要的号码,每个相同类别的折扣码都会有相同的 code。
- Z:最后的一位号码叫check sum,就是检查之前号码的总和。可以通过以下公式获得: 10 -((总数(单数位+ 偶数位x3))%10)
上面最主要的是CODE,这个CODE需要收集每个月的优惠券获得。但是某家的程序员可能有点偷懒,基本都是把上个月的CODE+1.
比如,上个月50-10的优惠券的CODE 是1234, 这个月就是1235.
这是目前可用的CODE:
10% off - 0148, 0149, 0150,0151
$10 off $50 - 9218
$15 off $75 - 9347
$20 off $100 - 0146,0147,9382
$40 off $200 - 9388
$60 off $400 - 939
获得CODE后,我们就可以自主的创建新的优惠码了。
比如我随机的优惠码是:47000123459218?(满50-10优惠码)
这里就剩下最后一位的check sum需要算出。
现在我就开始算最后一位的check sum:
最后一位=10 -(4+7x3+0+0+0+1x3+2+3x3+4+5x3+9+2x3+1+8x3)%10
最后一位=10 - 98%10
最后一位=10-8
最后一位=2
最终得到:470001234592182
到网站上试试可不可以使用:
显示这个优惠码已被使用,所以证明这个优惠码是有效的,只是已经被人使用了。
我们得到一个有效的优惠码后,可以通过这个优惠码推算出下一个有效的优惠码,步骤如下:
- 有效的优惠码:470001234592182
- 往第10位加1,最后一位加7(如果超过10,选最右边的数字,比如15,选5)
- 新的优惠码是:470001234692189
- 试试新的优惠码:
还是显示被别人用了,不怕继续重复第二步,直到生成一个可以用的优惠码
成功了~ 满50减10的优惠码显示在购物车上了~
是不是觉得很神奇!
上面看起来很简单,其实需要收集很多优惠券进行分析,找出他们的共同点。(花这时间还不老老实实的结账走人?)
相信很多人估计看不懂,但是这篇的目的不是让你看懂,也不是让你取巧,而是让你明白数学不止只用于算账,他的应用很广。
所以爸爸妈妈说的,学好数理化,走遍天下都不怕是真的。