针对取最小值最大值的小学数学题的出题函数,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;
黑龙江省
浏览 378
收藏
1
分享
1 +1
1
+1
全部评论 1