本来今年提前60天抢票以为可以抢到自己心仪的票,高高兴兴的回家去的,可是天不从人意,各种抢票软件都使用了还是没有抢到票,最后还是通过Q群的黄牛买到了票。
虽然最近12306发生的信息泄露问题,我也上去修改了密码,密码修改成功后,新密码不能登录,最后还是旧密码登录上去了,现在才发现12306掌握了13亿中国人信息的系统是有多么的烂。
新闻还提醒我们不要买黄牛的票,以免上当受骗以及身份信息泄露,但是我想问一句那我们去那里买票呢?
所以为了防止黄牛的泛滥,我觉得可以以下几点可以实现:
1.首先所有的12306登录账号为 身份证号码+本人真实姓名 为主键登录
2.在开启订票的时间后(一般为早上11:00),在一个小时内,所有订这个车次的用户进去排队,随机分配作为给排队的用户,短信提醒用户45分钟之内支付,并实时显示当前剩余的车票数量。
3.用户订到票未在45分钟内支付完成了,信誉度-1,并禁止1小时内进入当前车次的排队。
4.如果剩余排队人数>票数=0,就是还有人在排队,当时票已经售空,则短信提示剩余排队人员是否继续排队,继续排队的会一直等待其他人的退票。
5.后来排队用户的算法,就是未在11:00~12:00排上队的,则将后来排队人员在一个小时为区间的人员作为随机排队数列显示为第二队、第三队....以此类推,按队伍优先随机分配买票。
6.启用信誉度系统,当前用户乘过火车信誉度会增加10点,这样证明这个用户是真实存在的,防止黄牛用虚假的身份证来购票。
7.出现非本人登录订票的身份证订票成功,短信通知用户本人,并提示用户本人,是否冻结非法使用用户本人身份证操作的用户,让其到售票点解冻等等措施来防止用户信息盗用问题。
另外使用排队系统有利于座位分配最优化,大致算法如下:
1.举例北京西->海南三亚(Z201次列次)所经过站点:
北京西(A01)、石家庄(B02)、郑州(C03)、武昌(D04)、长沙(E05)、郴州(F06)、韶关东(E07)、广州(H08)、佛山(I09)、肇庆(J10)、茂名东(K11)、湛江西(L12)、徐闻(M13)、海口(N14)、东方(O15)、三亚(P16)
例子一:
张三,订票从北京西->长沙,记录编号为A01E05
李四,订票从长沙->三亚,记录编号为E05P16
则张三和李四分配在同一座位上,为最优解
例子二:
王五,订票从北京西->长沙,记录编号为A01E05
马六,订票从长沙->广州,记录编号为E05H08
赵七,订票从广州->三亚,记录编号为H08P16
则王五、马六和赵七分配在同一座位上,为最优解
从以上例子可以得到起始点与结束点编码相同的乘车人可并在一个座位上,可以将用户排序最优化。
而排队系统更有效的获得这一个小时内的用户进行最优化的座位安排,并且出票。