针对取最小值最大值的小学数学题的出题函数,JSA实现(一)
原文链接:求大神指点,第二个回复链接针对取最小值最大值的小学数学题的出题函数,JSA实现(二)
针对这一需求,写了一些代码。为方便代码复制,于是重新开帖回复 。
知识量有限,不知道怎么优化简化。有高手路过,指点一二
/* c最小值 c最大值 d最小值 d最大值 a最小值 a最大值 最小值 最大值
求最小值0 ()+a>c+d >=10 <=99-10-(1) >=10 <=99-(1)-c >=10 <=c+d-0+1 >=0 <=99-10
求最小值1 a+()>c+d
求最小值2 ()+a>c-d >=20 <=99-10 >=10 <=c-10 >=10 <=c-d
求最小值3 ()-a>c+d >=10 <=99-20-1 >=10 <=99-10-c-1 >=10 <=99-(c+d)-1 >=30+0 <=99
求最小值4 ()-a>c-d >=20 <=99-(1) >=10 <=c-10-0+1 >=10 <=99-(c-d)-1-0
求最小值5 a-()<c+d >=10 <=99-10 >=10 <=99-c >=c+d <=99
求最小值6 a-()<c-d >=20 <=99 >=10 <=c-10 >=c-d <=99
c最小值 c最大值 d最小值 d最大值 a最小值 a最大值 最小值 最大值
求最大值7 a-()>c-d >=20 <=99-0-1 >=10 <=c-10-0 >=c-d+1 <=99
求最大值8 a-()>c+d >=10 <=99-10-(1+0) >=10 <=99-(1+0)-c >=c+d+1+0 <=99 >=0 78
求最大值9 a+()<c+d >=10 <=99-10 >=10 <=99-c >=10 <=c+d-(0+1) >=0 88
求最大值10 ()+a<c+d
求最大值11 ()-a<c+d >=10 <=99-10-10+1 >=10 <=99-10-10+1-c >=10 <=99-(c+d)+1
求最大值12 a+()<c-d >=20+0+1 <=99 >=10 <=c-10-0-1 >=10 <=c-d-1-0
求最大值13 ()-a<c-d >=20+0+2 <=99-0-1 >=10 <=c-10-2 >=10 <=99-(c-d)-1
*/
var ISequations = false;
function test(){
console.clear();
//出题类型 : 取最小值为1,取最大值为2,混合取值为3
let sString = make_equation(3);
console.log("算式为:" + sString)
//对该算式进行验算,并给出答案。如果答案不在制定范围内,则可以抛弃该算式.
let rString = test_number(sString);
if(ISequations){console.log("答案及算式:"+ rString )}else{console.log("该算式计算错误,请重新出题.")}
}
function make_equation(ctype){
let n1=n2=n3=n4=0;
let maxsum = 99;
let maxnumber=99;
let minnumber=10;
let minvalue =1;
let Calculate_equation=["()+a>c+d","a+()>c+d","()+a>c-d","()-a>c+d","()-a>c-d","a-()<c+d","a-()<c-d","a-()>c-d","a-()>c+d","a+()<c+d","()+a<c+d","()-a<c+d","a+()<c-d","()-a<c-d"]
//0-6取最小值 7-13 取最大值
if(ctype == 1){
//只取最小值 算式
ctype = getRandomIntInclusive(1,7)
}else if(ctype == 2){
//只取最大值 算式
ctype = getRandomIntInclusive(8,14)
}else if(ctype == 3){
//最大值 和 最小值 算式
ctype = getRandomIntInclusive(1,14)
}
ctype = ctype - 1 ;
switch(ctype){
case 0:
//求最小值0 ()+a>c+d >=10 <=99-10-(1) >=10 <=99-(1)-c >=10 <=c+d-0+1 >=0 <=99-10
console.log("求最小值,题型为:()+a>c+d")
n1=getRandomIntInclusive(minnumber,maxnumber-minnumber-minvalue);
n2=getRandomIntInclusive(minnumber,maxnumber-n1-minvalue);
n3=getRandomIntInclusive(minnumber,n1+n2-minvalue+1);
break;
case 1:
//求最小值1 a+()>c+d 同上
console.log("求最小值,题型为:a+()>c+d")
n1=getRandomIntInclusive(minnumber,maxnumber-minnumber-minvalue);
n2=getRandomIntInclusive(minnumber,maxnumber-n1-minvalue);
n3=getRandomIntInclusive(minnumber,n1+n2-minvalue+1);
break;
case 2:
//求最小值2 ()+a>c-d >=20 <=99-10 >=10 <=c-10 >=10 <=c-d
console.log("求最小值,题型为:()+a>c-d")
n1=getRandomIntInclusive(minnumber+minnumber,maxnumber-minnumber);
n2=getRandomIntInclusive(minnumber,n1-minnumber);
n3=getRandomIntInclusive(minnumber,n1-n2);
break;
case 3:
//求最小值3 ()-a>c+d >=10 <=99-20-1 >=10 <=99-10-c-1 >=10 <=99-(c+d)-1 >=30+0 <=99
console.log("求最小值,题型为:()-a>c+d")
n1=getRandomIntInclusive(minnumber,maxnumber-minnumber*2-minvalue);
n2=getRandomIntInclusive(minnumber,maxnumber-minnumber-n1-minvalue);
n3=getRandomIntInclusive(minnumber,maxnumber-(n1+n2+minvalue));
break;