0%

这是一个很早就有的想法,在三月份左右我看到过一道类似于判断身份证号是否合法的一道简单的题,然后就想着能不能通过这个校验方式来获取随机的身份证号。要获取一个身份证号,首先分析身份证号的构成:

1
2
3
4
5
6
7
8
9
10
11
第一、二位表示省级行政区。
第一位数字是以前的大区制代码。第二位是大区所在省市编码。全国共分为8个大区:华北(1)、东北(2)、华东(3)、华南(4)、西南(5)、西北(6)、台湾(7)和港澳(8)。
第三、四位表示地级行政区。其中,01-20,51-70表示地级市;21-50表示地区、自治州、盟;90表示省直辖县级行政单位;直辖市身份证中01表示市辖区,02表示县。
第五、六位表示县级行政区。01-18表示市辖区或地区、自治州、盟辖县级市;21-80表示县、旗;81-99表示省直辖县级行政单位。

身份证号码第七位到第十四位表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。例如:1981年05月11日就用19810511表示。按GB/T7408的规定执行。

身份证号码第十五位到第十七位表示在同一地址码所标识的区域范围内,对同年、月、日出生的人员编定的顺序号。其中第十七位奇数分给男性,偶数分给女性。

身份证号码第十八位是根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。
作为尾号的校验码,是由号码编制单位按统一的公式计算出来的,如果某人的尾号是0-9,都不会出现X,但如果尾号是10,那么就得用X来代替,因为如果用10做尾号,那么此人的身份证就变成了19位,而19位的号码违反了国家标准,并且中国的计算机应用系统也不承认19位的身份证号码。X是罗马数字的10,用X来代替10,可以保证公民的身份证符合国家标准。

身份证号码构成

所以代码的实现步骤就很明显了,首先确定前六位,也就是身份证上的登记地点对应的六位数;然后确定第七到十四位,也就是生日,然后随机生成第十五位到第十七位,最后计算校验码得到第十八位。

阅读全文 »

物品回血回蓝

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
id = player.GetTargetPlayer() -- 获取角色id
player.ChangeHP(arg1, arg2, id, val) -- 回血
player.ChangeMP(arg1, arg2, id, val) -- 回蓝
-- arg1: 恢复类型;1: 按比例恢复 0: 按数值恢复
-- arg2: 恢复范围;1: 全体恢复 0: 单体恢复
-- val: 恢复量

-- WARNING: 不要设置arg1/arg2为01以外的其他值,否则可能会造成未定义行为

-- 例1:
player.ChangeHP(0, 0, id, 300) -- 单体回复300点血

-- 例2:
player.ChangeMP(0, 1, id, 20) -- 全体回复20点蓝

-- 例3:
player.ChangeHP(1, 1, id, -25) -- 全体受到生命上限20%的伤害

-- WARINING: 在伤害型物品中,最好不要对敌人产生减蓝的操作
-- 因为PAL5/PAL5前传不像PAL4一样敌人有蓝,要对敌人产生减蓝可能产生未定义行为
-- 在修改代码时,务必考虑清楚该代码产生的行为是否可以使游戏保持一致性
阅读全文 »

〇、 什么是 CUDA

CUDACompute Unified Device Architecture),是显卡厂商 NVIDIA 推出的运算平台。 CUDA™是一种由NVIDIA推出的通用 并行计算 架构,该架构使 GPU 架构,该架构使 GPU 能够解决复杂的计算问题。 它包含了CUDA指令集架构ISA)以及GPU内部的并行计算引擎。 开发人员可以使用C语言来为CUDA™架构编写程序,所编写出的程序可以在支持CUDA™的处理器上以超高性能运行。


阅读全文 »