0001

又一天过去了,今天上午写了一下练习,下午老黄让我跟另外两个男生一起坐图像识别,或许是创新项目吧,试试团队的力量也不错。

回归正题:

第 0001 题:做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)?

想法只有一个解决方案,那就是把字母的随机数与数字的随机数放在一起就是激活码了,后来就想不到其他方法,参照了这几个算法:http://www.blogjava.net/BearRui/archive/2010/10/19/unique_random_code.html,然后根据这四个算法,写出了如下三种解决方案:

1、代码如下:

 1 # coding=utf-8
 2 __author__ = ‘wing1995‘
 3 """
 4 单纯的随机数字和字母的组成
 5 """
 6 import string as s
 7 import random as r
 8
 9
10 def ranDom():
11     f = open(‘随机激活码.txt‘, ‘w+‘)
12     for i in range(200):
13         random_str = ‘‘.join(r.choice(s.ascii_uppercase + s.digits) for x in range(10)) + ‘\n‘
14         f.write(random_str)
15     f.close()
16
17 if __name__ == ‘__main__‘:
18     ranDom()

优点:或许是头脑简单吧,一般人都想得出来。

缺点:当数据量比较大的时候,重复的可能性大。

2、

 1 # coding=utf-8
 2 __author__ = ‘wing1995‘
 3 """
 4 直接使用uuid模块
 5 """
 6 import uuid as u
 7
 8
 9 def rand_uuid():
10     f = open(‘随机激活码_1.txt‘, ‘w+‘)
11     for i in range(200):
12         ID = str(u.uuid1()) + ‘\n‘
13         f.write(ID)
14     f.close()
15
16 if __name__ == ‘__main__‘:
17     rand_uuid()

优点:因为是借助别人写的模块,因此代码简单。

缺点:产生的数据量较大,而且差别不是很大

3、

 1 # coding=utf-8
 2 __author__ = ‘wing1995‘
 3 """
 4 使用主键和随机码
 5 """
 6 import string as s
 7 import random as r
 8
 9
10 def rand_ID():
11     f = open(‘随机激活码_2.txt‘, ‘w+‘)
12
13     for i in range(200):
14         ID = id(i)
15         rand_id = str(ID)[5:]  # 选取id的后面5位数字
16         null = ‘‘
17         for j in rand_id:
18             null += j + r.choice(s.ascii_uppercase)  # 在每一个数字后面添加一个大写字母
19         f.write(null + ‘\n‘)
20     f.close()
21
22 if __name__ == ‘__main__‘:
23     rand_ID()

优点:使用简单,可以直接根据激活码得出id

缺点:按道理是有的,如果id是根据数据库的主键编号得来的话

其实还有第四种方法:

先获取id,然后将id转换为8进制,并转换成字符串,在字符串后面加一个固定的字符例如“9”,最后在这串字符串后面加上随机的数字,得到的就是随机的数字激活码了。但是觉得方法跟第三类差不多,只不过是一种钥匙而已,还有人说用MD5就可以生成唯一的值,也有理。这就像是密码学里面的明文和密文的关系。

晚安!

时间: 2024-10-13 11:13:28

0001的相关文章

【python小练】0001

第 0001 题:做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)? # coding = utf-8 __author__= 'liez' import random def make_number(num, length): str = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' a = []

【伪装位置神器】神行者AnyLocation 1.3.0001可用于微信,陌陌

<ignore_js_op> 软件名称:神行者(破解)软件版本:v1.3.0001授权类别:免费测试机型:大可乐手机 下载链接: http://pan.baidu.com/s/1qWwSMde 密码: m7mq 应用简介: 神行者AnyLocation是安卓上最强大的地点变换工具,可以任意设置你的当前地点,是保护隐私,约会交友的必备神器!例如,你想通过微信认识日本的动漫达人,那么就可以用神行者把手机当前地点设置为东京,再进入微信查找附近的人,就可以搜到当地的人了!在高级模式下,无需开启“允许模

每天一个 Python 小程序--0001

第 0001 题:做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)? -------------------------------------------------------------------------------------------------------------------------------------------------- # -*- codin

【0001(基础)】Skyline二次开发入门经典系列教程总览

本人是从2012年开始接触Skyline二次开发的,经历过 v6.0~v6.5(最新的6.6版本还未使用)的所有版本.作为一名非GIS专业毕业的大学本科生,鬼使神差般地进入了这个瑰丽的GIS领域.因此,在从事了4年多的Skyline二次开发工作后,我不能说我是"授业有专攻",更不能说我是"闻道有先后".在这个领域内,大牛之人比比皆是,正是因为他们的存在与指引,才使得我现在有点东西可以写出来供大家交流沟通.   整理这个系列教程的原因主要出于如下几点的考虑: 1.Sk

Python Show-Me-the-Code 第 0001 题 生成激活码

第 0001 题:做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)? 不知道用什么方法生成激活码比较靠谱,所以就用字母和数字的随机组合了.如果有更好的方法请告诉我:) 生成的大概是这样子的: 0001.生成激活码.py #!/usr/bin/env python #coding: utf-8 import string, random #激活码中的字符和数字 field = stri

0001片上网络技术发展现状及趋势浅析

片上网络技术发展现状及趋势浅析 李丽 许居衍 The State-of-the-art and perspectives on Network-on-Chip 摘要: 半导体工艺发展使得片上可以集成更大规模的硬件资源,片上网络的研究试图解决芯片中全局通信问题,使得从基于计算的设计转变为基于通信的设计,并实现可扩展的通信架构. 本文指出NoC是当前片上通信发展的主流趋势,并 分析了当前NoC关键技术瓶颈, 预测了多核技术和产业发展趋势. 关键词:片上网络:存储结构:并行软件:功耗管理 一.引言 多

Python 练习册,每天一个小程序 -- 0001题

继续做题: 第 0001 题:做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)? 分析问题: 一般来说,公司在搞活动的时候都会有批量的激活码放出,一般激活码的格式都是  xxxxx-xxxxx...的格式,并且是随机生成的,我这里使用到的是 python的random模块. 解决问题: 简单的实现如下: #!/usr/bin/env python # -*- coding: utf-

PV Desktop6.0001石油化工静设备计算机辅助设计桌面系统

石油化工静设备计算机辅助设计桌面系统( PV Desktop 6.0 )主要包括以下内容: 卧式容器分析 HVslWin 6.0 立式容器分析 VVslWin 6.0塔式容器分析 TVslWin 6.0 U 形管换热器分析 UHExWin 6.0浮头换热器分析 FHExWin 6.0 固定管板换热器分析 SHExWin 6.0球形储罐分析 SphWin 6.0 圆筒形储罐分析 TankWin 6.0 容器元件绘图 PVDraft 2.0 管壳式换热器绘图 HtrxCAD 2.0容器绘图 Vesl

IIS7.0发布Web服务-0001

配置错误 不能在此路径中使用此配置节.如果在父级别上锁定了该节,便会出现这种情况.锁定是默认设置的 (overrideModeDefault="Deny"),或者是通过包含 overrideMode="Deny" 或旧有的 allowOverride="false" 的位置标记明确设置的.  配置文件 \\?\X(盘符):\目录名\目录名\web.config<system.webServer>        <handlers