用PHP随机出100道20以内的数学加减法练习题
更新:2022-02-10 18:35:40
人气:1931
来源:本站原创
A+
为了给家里的孩子出20以内的加减法习题,每次都是手写,今天干脆利用老本行PHP写一个方法吧。实现目标,题量自定义、任意设置数字范围和结果得数范围、出题不能重复。
以下是PHP出小学数学练习题的源代码:
<?php $mrand_1 = 1; //数字范围,最小数 $mrand_2 = 20; //数字范围,最大数 $leibei_1_limit = 20; //加法得数最大值 $leibei_2_limit = 0; //减法得数最小值 $tinum = 100; //出题数量 $leibie = 2; //加法1,减法2 $tistr=''; $jilu_str=''; $now_num=1; function get_suanshi_jiafa($v1,$v2,$v3,$jilu_str,$tinum,$now_num){//加法 $num_1=mt_rand($v1,$v2); $num_2=mt_rand($v1,$v2); $ee=$now_num; if (strpos($jilu_str,",".$num_1."|".$num_2.",")!==false){//重复题重新生成 get_suanshi_jiafa($v1,$v2,$v3,$jilu_str,$tinum,$ee); }else{ if ($num_1+$num_2<=$v3){// $str_e = $num_1." + ".$num_2." =<br>"; $jilu_get = ",".$num_1."|".$num_2.","; $jilu_str .= $jilu_get; $ee++; echo $str_e; if ($ee<=$tinum){//题量不足再次出题 get_suanshi_jiafa($v1,$v2,$v3,$jilu_str,$tinum,$ee); } }else{//得数超纲了 get_suanshi_jiafa($v1,$v2,$v3,$jilu_str,$tinum,$ee); } } } function get_suanshi_jianfa($v1,$v2,$v3,$jilu_str,$tinum,$now_num){//减法 $num_1=mt_rand($v1,$v2); $num_2=mt_rand($v1,$v2); $ee=$now_num; if (strpos($jilu_str,",".$num_1."|".$num_2.",")!==false){//重复题重新生成 get_suanshi_jianfa($v1,$v2,$v3,$jilu_str,$tinum,$ee); }else{ if ($num_1-$num_2>=$v3){// $str_e = $num_1." - ".$num_2." =<br>"; $jilu_get = ",".$num_1."|".$num_2.","; $jilu_str .= $jilu_get; $ee++; echo $str_e; if ($ee<=$tinum){//题量不足再次出题 get_suanshi_jianfa($v1,$v2,$v3,$jilu_str,$tinum,$ee); } }else{//得数超纲了 get_suanshi_jianfa($v1,$v2,$v3,$jilu_str,$tinum,$ee); } } } if ($leibie=='1'){//加法 get_suanshi_jiafa($mrand_1,$mrand_2,$leibei_1_limit,$jilu_str,$tinum,$now_num); } if ($leibie=='2'){//减法 get_suanshi_jianfa($mrand_1,$mrand_2,$leibei_2_limit,$jilu_str,$tinum,$now_num); } ?>
之前想过用FOR循环显示,但因为增加了重复题的判断,for就不一定能达到结果得数的要求,所以就要用到了递归。
推荐的文章
随手记
- ● 自制(IP或域名)可信任的SSL证书,适用360、chrome等浏览器
- ● windows系统下php无法使用curl怎么办?
- ● 绿联UGREENKVM切换器(分屏器)快捷键丢失解决办法
- ● 统信UOS开机指定网址全屏启动自带浏览器以及屏蔽ALT+F4关闭
- ● xshellSSH连接Linux服务器防止超时退出
- ● php8开启OpenSSL扩展库报错disabledinstallext
- ● 统信系统linux安装php时的报错libxml-2.0>=2.7.6
- ● tidb关闭sql_mode=ONLY_FULL_GROUP_BY模式
- ● windows10如何开机自动运行bat文件
- ● Win10Mysql8初始密码丢失,初始化又不显示密码
PHP经验分享
- ● PHP批量对TCP服务端指定多个IP非阻塞检查在线状态
- ● python实现TCP服务端持续接收关机、重启指令并输出结果【系列三】
- ● PHP给TCP服务端发送指令【系列二】
- ● PHP判断TCP服务端是否在线【系列一】
- ● PHP判断远程文件是否存在
- ● LINUX下用PHP获取CPU型号、内存占用、硬盘占用等信息代码
- ● PHP代码用UDP方式远程唤醒电脑让计算机开机
- ● apache下php生成验证码图片不能显示
- ● PHP使用AES加密解密示例(无偏移)
- ● Pluginmysql_native_passwordreported:''mysql_native_password'isdeprecate问题