(image source: pixabay)
之前分享了数学在优惠券上的应用, 怎么利用数学找出优惠券上的规律,并且利用规律生成新的可用的优惠代码。
前文规律回顾:
某家的优惠码基本是这个规律:47000RRRRRCODEZ
- RRRRR:代表随机号码,比如12345
- CODE:4位 code,这是最主要的号码,每个相同类别的折扣码都会有相同的 code。
- Z:最后的一位号码叫check sum,就是检查之前号码的总和。可以通过以下公式获得: 10 -((总数(单数位+ 偶数位x3))%10)
通过上面的规则,可以看出如果知道CODE,就只需要算出check sum就可以获得一个完整的优惠代码。
下面我们就写个小程序完成自动生成新的优惠代码这个步骤吧。
这是PHP版本:
1 2 3 4 5 6 7
| function couponGenerator($data) { //47000+5位随机数字+CODE $data="47000"."".rand(10000,99999)."".$data; //前面的数字加上check sum $data=$data."".addchecksum($data); return $data; }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| //checksum的算法 //10 -((总数(单数位+ 偶数位x3))%10) function addchecksum($data){ $checksum=0; for ($x = 0; $x < 14; $x++) { //如果是单位数 if($x%2==0){ $checksum+=intval($data[$x]); } //如果是双位数 else{ $checksum+=intval($data[$x])*3; } } return "".((10-$checksum%10)%10); }
|
Python 版本:
1 2 3 4 5 6 7 8 9 10 11 12 13
| def addchecksum(stuff): checkdigit = 0 for j in range(14): if j % 2 == 0: checkdigit += int(stuff[j]) else: checkdigit += int(stuff[j]) * 3 print(str(stuff) ) + str((10 -(checkdigit % 10))%10)
def coupon_generator(price): for j in range(100): i = randint(0, 99999) addchecksum("47000" + "%05d" % i)
|
非常简单的小程序。很多程序代码不难写,难写的是思路,只要理清一下思路,代码想怎么写就可以怎么写。
这是利用以上PHP代码完成的一个自动生成优惠码的网页:https://lowescoupongenerator.000webhostapp.com/index.php
你可以随便玩,随便生成新的优惠码,反正都用不了~ 因为目前的CODE已经过期了,我好久已经没更新了~
好了,代码完成了。十几行代码可能省去很多精力算出新的优惠码~
Posted from my blog with SteemPress : http://ericet.vornix.blog/2018/12/29/%e6%95%b0%e5%ad%a6%e5%9c%a8%e4%bc%98%e6%83%a0%e5%88%b8%e4%b8%8a%e7%9a%84%e5%ba%94%e7%94%a8%e7%bc%96%e7%a8%8b%e7%af%87%ef%bc%89/
This page is synchronized from the post: 数学在优惠券上的应用(编程篇)