早教吧 育儿知识 作业答案 考试题库 百科 知识分享

随机数生成问题有一个随机数生成函数以等概率1/2产生数字1和2,问:(1)如何用它以等概率1/3产生1、2、3三个数字?(2)在(1)的基础上,要产生序列“123”需要调用这个函数多少次?

题目详情
随机数生成问题
有一个随机数生成函数以等概率1/2产生数字1和2,问:(1)如何用它以等概率1/3产生1、2、3三个数字?(2)在(1)的基础上,要产生序列“123”需要调用这个函数多少次?
▼优质解答
答案和解析

假设函数为rand2()

function rand3(){
    $a = rand2().rand2();
    if($a=='11'){
        return 1;
    }elseif($a=='12'){
        return 2;
    }elseif($a=='22'){
        return 3;
    }else{
        return rand3();
    }
}

函数rand3()等概率1/3产生1、2、3三个数组,几率当然为1/27,理论上要产生123需要调用这个函数27次.

第二题我不知道你问的是不是这个意思,对不对也不清楚,函数应该是对的,语法是php的.