欢迎光临散文网 会员登陆 & 注册

“葫芦娃救爷爷为啥一个一个上?童年最大疑惑被李永乐老师解开了!”js代码

2023-08-25 10:13 作者:superxnj  | 我要投稿

B站的视频“葫芦娃救爷爷为啥一个一个上?童年最大疑惑被李永乐老师解开了!”很有意思,古典概率建模,然后计算出最优策略。但是132个策略是怎么来的没说清楚,概率曲线也不方便验证。我用 js+MATLAB 解决了。那个视频由于权限设置无法评论,我只好另发出来分享给大家。

这段是 JavaScript 代码:

<script>

    function getStrategies() {

        const res = [];


        for (let i1 = 0; i1 <= 1; i1++) {

            for (let i2 = 0; i2 <= 2; i2++) {

                for (let i3 = 0; i3 <= 3; i3++) {

                    for (let i4 = 0; i4 <= 4; i4++) {

                        for (let i5 = 0; i5 <= 5; i5++) {

                            for (let i6 = 0; i6 <= 6; i6++) {

                                if ((i1 + i2 + i3 + i4 + i5 + i6 === 6)

                                    && (i1 + i2 <= 2)

                                    && (i1 + i2 + i3 <= 3)

                                    && (i1 + i2 + i3 + i4 <= 4)

                                    && (i1 + i2 + i3 + i4 + i5 <= 5)) {

                                    res.push([i1, i2, i3, i4, i5, i6]);

                                }

                            }

                        }

                    }

                }

            }

        }


        return res;

    }


    function successProbability(a) {

        let sum = 0;

        let previousFailProbability = 1;

        for (let i = 0; i < a.length; i++) {

            if (i > 0) {

                previousFailProbability *= (1 - a[i - 1] / 7);

            }

            sum += previousFailProbability * (6 - i) / 6 * a[i] / 7;

        }

        return sum;

    }


    let a = getStrategies();

    let pArr = [];

    for (let i = 0; i < a.length; i++) {

        const j = a.length - 1 - i;

        const p = successProbability(a[j]);

        const pf = parseFloat((p * 100).toFixed(2));

        pArr.push(pf);

        console.log("策略" + (i + 1) + ": " + a[j] + ", P = " + (p * 100).toFixed(2) + "%");

    }

    console.log("y=[" + pArr.toString() + "];"); //为MATLAB画图做准备

</script>



以下是 matlab 代码:

x=0:131;

y=[39.66,38.56,38.56,37.06,35.99,38.56,37.48,36.81,35.31,34.24,35.99,33.99,32.49,31.49,38.56,37.48,37.48,36.03,34.99,36.51,35.44,34.77,33.27,32.19,33.94,31.95,30.45,29.45,35.99,34.99,33.4,31.95,30.9,31.9,29.9,28.4,27.41,31.49,28.86,26.82,25.36,24.49,38.56,37.48,37.48,36.03,34.99,37.48,36.44,35.78,34.33,33.28,34.99,33.04,31.58,30.61,36.17,35.1,35.1,33.65,32.6,34.13,33.06,32.38,30.88,29.81,31.56,29.56,28.06,27.07,33.6,32.6,31.02,29.56,28.52,29.52,27.52,26.02,25.02,29.11,26.48,24.44,22.98,22.11,35.99,34.99,34.99,33.62,32.65,32.72,31.68,31.02,29.56,28.52,30.22,28.28,26.82,25.85,31.22,30.22,28.64,27.18,26.14,27.14,25.14,23.64,22.64,26.72,24.1,22.06,20.6,19.73,31.49,30.61,27.84,26.48,25.51,25.46,23.52,22.06,21.09,24.34,21.72,19.68,18.22,17.35,24.49,21.09,18.37,16.33,14.97,14.29];

plot(x,y,'.-');

grid on;


“葫芦娃救爷爷为啥一个一个上?童年最大疑惑被李永乐老师解开了!”js代码的评论 (共 条)

分享到微博请遵守国家法律