zoukankan      html  css  js  c++  java
  • 概率的可配置化

    function randomInProbability( weights ){
      if( arguments.length > 1 ){
        weights = [].slice.call( arguments );
      }
    
      var total, current = 0, parts = [],
          i = 0, l = weights.length;
    
      total = weights.reduce ? weights.reduce( function( a, b ){
        return a + b;
      } ) : eval( weights.join( '+' ) );
    
      for( ; i < l; i ++ ){
        current += weights[ i ];
        parts.push( 'if( p < ', current / total, ' ) return ', i / l, ' + n;' );
      }
    
      return Function( 'var p = Math.random(), n = Math.random() / ' + l + ';' + parts.join( '' ) );
    }
    var updateRandom = randomInProbability( 0.01, 0.02, 0.09, 1.8, 0.1 );
    var objects = [ '登山包', '旅行箱', '移动电源', '谢谢参与', '不中奖' ];
    var randomIndex = Math.floor( objects.length * updateRandom() ); 
    var object = objects[ randomIndex ];
  • 相关阅读:
    GCD 并行子线程
    iOS开发>学无止境
    iOS开发>学无止境
    iOS开发>学无止境
    FMDB使用
    递归
    局部变量与全局变量
    函数式编程与参数
    文件的操作
    集合的操作
  • 原文地址:https://www.cnblogs.com/phpfensi/p/5600638.html
Copyright © 2011-2022 走看看