欢迎您来到,李雷博客 | PHP博客        登录  |  注册

用PHP随机出100道20以内的数学加减法练习题

更新:2022-02-10 18:35:40
人气:1473
来源:本站原创
A+

为了给家里的孩子出20以内的加减法习题,每次都是手写,今天干脆利用老本行PHP写一个方法吧。实现目标,题量自定义、任意设置数字范围和结果得数范围、出题不能重复。

小学数学20以内加法口诀表

以下是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就不一定能达到结果得数的要求,所以就要用到了递归。

推荐的文章
# 发表我的评论
  /     /  
# 最近评论
暂时还没有评论,要不要说点什么?
  Ads by Google
  联系博主
Hello,本博客系统采用PHP和MySql开发,程序开发完全是因为个人爱好,是自己纯手写PHP源代码,未采用任何PHP框架!
QQ:858353007   微信号:lileihot123
网站地图
会员服务
关于我们
QQ:858353007
 
广告服务
加我微信
移动端访问
 
 
Copyright © 2014- 2024 www.mdaima.com All Rights Reserved.
李雷博客,专注PHP经验、PHP教程及PHP源代码开源下载分享的PHP博客!   ICP备案号:京ICP备10202169号-4