使用chatGPT写了个双色球模拟选号程序
近期的chatGPT热度很高,其中一块是可以写程序,那么就简单测试了一个双色球模拟选号程序。
一、 chatGPT沟通及返回结果me: 用python3写一个双色球选号程序,并解释步骤
GPT: 以下是一个简单的双色球选号程序示例,程序实现了随机选号功能,具体步骤如下:
import randomdef select_numbers(): red_balls = random.sample(range(1, 34), 6) blue_ball = random.randint(1, 16) return sorted(red_balls) + [blue_ball]if __name__ == '__main__': numbers = select_numbers() print('红球:', ' '.join(str(i) for i in numbers[:6]), '蓝球:', numbers[6])
导入random模块,该模块提供了随机数生成器。定义一个select_numbers()函数,该函数随机生成6个红球号码和1个蓝球号码。其中,使用random.sample()函数从1-33的范围内选出6个不重复的红球号码,使用random.randint()函数从1-16的范围内选出1个蓝球号码,并将红球和蓝球号码合并返回。在if __name__ == '__main__':代码块中调用select_numbers()函数生成一组随机号码,并使用print()函数输出到控制台上。需要注意的是,双色球选号程序只是一种随机选号的方法,不保证中奖。真正的选号方法需要结合历史开奖数据、走势图等因素进行分析和选择。二、 验证程序运行结果
将程序使用pycharm运行
结果如下:
由此可见,简单的需求chatGPT已经能很正确的实现了。
PS: 如需注册chatGPT,可关注微信公众号"数据库干货铺" 联系我沟通。
双色球号码我做主,数据库编程随机生成双色球号码(MySQL)
购买福彩双色球是大家一种喜闻乐见的娱乐活动,还可以高大上的说是为了公益事业献爱心,作者本身就积极热爱这项活动,截至目前的最佳战绩是1000元,今天(周四)又是双色球开奖日,拿起手机准备点击随机选号的时候,突发了我的灵机,能不能用数据库(MySQL)来实现随机双色球号码呢?说干就干!
模拟双色球那我们就模拟真实的中奖号码的产生过程。33个红球放在一个罐子里,每次产生一个,每产生一个罐子里的球就少一个,那我就设计一个表red,代表这个红球罐子:
create table red(r int(2),u char(1) default '0');
其中r代表红球号码,u代表是否使用的意思,默认值0,未使用,1代表已使用过。
然后插入从1到33的33行数据代表红球:
insert into red(r) values(1);insert into red(r) values(2);insert into red(r) values(3);insert into red(r) values(4);insert into red(r) values(5);insert into red(r) values(6);insert into red(r) values(7);insert into red(r) values(8);insert into red(r) values(9);insert into red(r) values(10);insert into red(r) values(11);insert into red(r) values(12);insert into red(r) values(13);insert into red(r) values(14);insert into red(r) values(15);insert into red(r) values(16);insert into red(r) values(17);insert into red(r) values(18);insert into red(r) values(19);insert into red(r) values(20);insert into red(r) values(21);insert into red(r) values(22);insert into red(r) values(23);insert into red(r) values(24);insert into red(r) values(25);insert into red(r) values(26);insert into red(r) values(27);insert into red(r) values(28);insert into red(r) values(29);insert into red(r) values(30);insert into red(r) values(31);insert into red(r) values(32);insert into red(r) values(33);
篮球由于只有一个,所以就不用制作罐子了,生成一个1到16的随机数就行。准备工作结束那就开始编写SQL语句吧。呦呦呦!不巧的是MySQL的循环只能写在过程或者函数里,那我们就编写这样一个函数:
CREATE FUNCTION doublecolorball() RETURNS varchar(100) CHARSET utf8BEGINdeclare i int default 1;#定义一个循环变量declare red int;#定义单个红球declare redballs varchar(100);#定义红球串update red set u='0';#开始前,将所有红球置为可用状态while i<=6 do #循环6次select r into red from red where u='0' order by rand() limit 1; #从红球堆里一次抽取一个update red set u='1' where r=red;#将抽取的红球设置为已用状态set i = i+1;#循环变量增加1,代表已经完成一次抽取红球的操作end while;#循环体结束select GROUP_CONCAT(r) into redballs from red where u='1';#将所有已经抽取的红球聚合成一行一列并将结果赋值给变量redballsRETURN concat('红球:',redballs,' 篮球:',cast(floor(rand()*16)+1 as char(2)));#随机从1到16抽取一个篮球并和红球串组合返回。END;#函数体结束
上面的函数创建成功后,使用以下方法调用
select doublecolorball() 中将号码;
这样一个福彩双色球的MySQL随机函数就完成了,我们来回顾一下使用到的相关技术:
1、创建表的语句,其中字段有默认值的写法 create table;
2、插入数据的方法insert;
3、创建函数的方法、调用函数的方法create function …returns;创建函数还可以使用变量,不过本函数没必要使用变量。
4、declare定义变量并赋初值;
5、查询数据并将数据使用变量保存into;
6、update更新数据;
7、随机数函数rnad()只能随机0到1的小数,所以用一种变相方法实现1到16的随机数;
8、使用group_concat函数将单列多行数据聚合成单行单列数据。
9、调用函数的方法 select 函数();
10、mysql注释语句的写法#,注意如果函数内的注释行折行,请将其变成单行,或者注释行前面都加上#
此函数只是简单实现了随机生成号码的方法,其实还可以扩展双色球的各种复杂算法,比如和值、奇偶比、三区比等等,稍微扩展一下red表即可,那位有优秀想法可以私信联系我实现算法,共同实现大奖梦。
学习和使用此函数不一定中奖,倒是可以多多练习MySQL的SQL写法,多多实现此类具有实际意义的事情,数据库能力便会愈来愈强。
最后为啥你老是写MySQL的实现方法,不写Oracle和SQL Server了,因为MySQL方便,可以偷懒,下次把那哥俩带上!
用 Excel 做的双色球随机号码模板
很多同学会觉得 Excel 单个案例讲解有些碎片化,初学者未必能完全理解和掌握。不少同学都希望有一套完整的图文教学,从最基础的概念开始,一步步由简入繁、从入门到精通,系统化地讲解 Excel 的各个知识点。
现在终于有了,以下专栏,从最基础的操作和概念讲起,用生动、有趣的案例带大家逐一掌握 Excel 的操作技巧、快捷键大全、函数公式、数据透视表、图表、打印技巧等……学完全本,你也能成为 Excel 高手。
由于不时买个彩票,所以想到做个自动选号模板,万一玄学出奇迹呢。
案例:制作双色球模板,按规则,自动从 1~33 中抽取 6 个不重复的红球,从 1~16 中抽取一个篮球。
红球大小按顺序排列,每次按 F9 以后,出自动出现新的号码组合。
效果如下图 1、2 所示。
解决方案:1. 将 Sheet2 用作设置所有辅助列,在 A2 单元格中输入以下公式:
=RANDARRAY(33,1,1,33)
公式释义:
RANDARRAY 是个 365 函数,作用是返回一组随机数字。可指定要填充的行数和列数,最小值和最大值,以及是否返回整数或小数值;语法为 RANDARRAY([要返回的行数],[要返回的列数],[返回的最小值],[返回的最大值],[true 返回整数,false返回十进制值]);本公式表示返回 33 行、1 列、从 1 到 33 之间的非整数* 公式中的最大最小值这里不是特别重要,也可以取更大的范围。
* 为什么这里的随机函数为什么不直接取整呢?这是为了避免红球出现重复号码。
由于是 365 公式,所以自动生成了动态数组区域,不需要向下复制公式。
2. 在 B2 单元格中输入以下公式 --> 向下拖动复制公式:
=RANK(A2,$A$2#)
公式释义:
rank 函数的作用是计算 A2 在区域 $A$2# 中的排位,默认情况下按降序排序* 请注意:作为区域的第二个参数需要绝对引用。
现在去往 Sheet1,在这里正式设置随机号码区域。
3. 在 A2 单元格中输入以下公式:
=SORT(Sheet2!B2:B7)
公式释义:
sort 也是 365 函数,作用是将 Sheet2!B2:B7 区域内的 6 个数值排序,默认情况下按升序排;因为区域内的数组是对随机数的排名,所以本身也是随机的,此时提取出来的 6 位当然也是随机数,从而实现了红球的随机抽取也自动生成了动态数组区域。
4. 在 B2 单元格中输入以下公式:
=RANDARRAY(1,1,1,16,1)
公式释义:
在 1 至 16 中随机提取出 1 行 1 列的整数5. 将 Sheet2 隐藏起来,显得更美观。
按 F9,红蓝球都会随机生成。
用自己生成的号码去买彩票吧,祝你好运!
手机在线摇一摇 泰安彩民晃出大乐透25万
3月23日,泰安彩民郝先生来到体彩中心办理兑奖手续,他拿出手机向工作人员展示了手机在线中奖画面。经过验证,郝先生中得超级大乐透18032期二等奖追加一注,奖金金额为257923元。
工作人员想了解其投注过程时,郝先生非常简洁的说了一句“摇一摇机选的号码,然后追加”,之后便全程无话,既没有中奖的惊喜之情,也没有其他人领奖的紧张之样,签字领取奖金后便离开了体彩中心,堪称史上“话最少领奖人”。
郝先生所说的“摇一摇”功能,是指手机在线超级大乐透游戏中的号码选取方式,只需要摇动手机即可随机产生一注号码,用户可以选定倍数或者是否追加,正是这注机选的号码,才让幸运的郝先生中得二等奖。
目前,手机已经成为广大市民生活中必不可缺的重要物品,而山东体彩推出的手机在线业务则是广票爱好者的必备神器,可在线投注乐透玩法、即开游戏、竞彩足球、传统足彩等,同时融合开奖信息、足球直播、足球资讯内容,非常方便快捷,足不出户就能畅享购彩中奖的乐趣