数学上表示没有本地存储的时间百分比

时间:2014-04-22 14:17:24

标签: javascript math percentage

有没有办法在不使用本地存储的情况下在一定时间内可靠地执行某个功能?

例如:在页面加载时,console.log('hello')有60%的时间。

  1. 在1-10
  2. 之间创建一个随机数
  3. 如果数字== 7,8,9,或10不执行
  4. 否则,console.log('hello);
  5. 如果每个数字的选择概率相等,则在选择10个数字中的6个时运行函数= 60%运行时间。

    这样的数学声音是什么? Cookie和会话不可用..

    由于

    更新:我不是在寻找代码来做到这一点。我在问数学问题。

4 个答案:

答案 0 :(得分:3)

if(Math.random() < 0.6) {
    console.log('hello')
}

答案 1 :(得分:1)

var rand = Math.floor((Math.random()*10)+1);
var display = rand < 7;

if (display) {
    console.log('hello');
}

无需本地存储空间。你需要的只是普通的旧JS。

注意:您实际上可以将display简化为Math.random() < 0.7,但我想我会写出让逻辑更容易理解的步骤,尤其是{ {1}}产生浮点数,问题是处理整数。

答案 2 :(得分:0)

var number = Math.floor((Math.random()*10)+1);
if (number < 7) doSomething();

这似乎是你想要实现的目标?

答案 3 :(得分:0)

您可以使用函数组合来创建有时会调用回调函数的函数。

function maybeCallback(callback) {
    function shouldCallback() {
        // 60% chance
        return Math.random() < 0.6;
    }

    return function () {
        if(shouldCallback()) {
            callback();
        }
    }
}

用法:

function callback() {
    console.log('This might get called');
}

var maybeCallable = maybeCallback(callback);

setTimeout(maybeCallable, 1000);

至于数学方面,请看Math.random

  

返回[0,1]范围内的浮点伪随机数   也就是说,从0(含)到最高但不包括1(不包括),   然后你可以缩放到你想要的范围。

来自值W的独占范围R[X, Y))的Z百分比定义为:

W = (Z-X)/(Y-X)*100

给出值:

W = (0.6-0)/(1-0)*100 = 0.6/1*100 = 60%