热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

是否有特定百分比的机会来运行某些东西?

我在网站上阅读了一些有关获取运行功能百分比的主题,但是没有一个指导我如

我在网站上阅读了一些有关获取运行功能百分比的主题,但是没有一个指导我如何获取运行功能的特定十进制百分比。

我尝试过类似的事情:

Math.floor(Math.random() * 100) + 1 + '%'

但是它不返回小数。

我要说的是,有{%{%1}}运行console.log("0.5%")的机会为0.5%,有什么办法吗?非常感谢你!


这就是您要的。

我在上面的评论中解释了percentFromRandom。
调用该函数时,runWithProbability函数将以一定概率调用给定函数。

logWithProbability使用runWithProbability函数,但使用自定义console.log功能作为您的答案。

init函数以30个随机概率运行30次,显示了该函数用法的示例。在大多数情况下,它将记录较大的%,因为它们更有可能调用console.log函数。


//convert the random value into human readable percentage
function percentageFromRandom(value,fractiOnalDigits= 2){
return (value*100).toFixed(fractionalDigits)+'%';
}
//take a function and probability of running it
//if the probability is met,call the function.
function runWithProbability(fn,probability){
if(probability >= 1 || Math.random() return fn(probability);
}
return false;
}
//make a console log with a certain probability,//log the percentage probability if called
function logWithProbability(probability){
runWithProbability(()=>
console.log(percentageFromRandom(probability)),probability);
}
// See console logs and their probability as
// a percentage of running.
const init = () => {
for(let i = 0; i <30; i++){
logWithProbability(Math.random());
}
}
init();


,

Math.random()返回0到1之间的随机数。

百分比只是100的一小部分。将100除以得到0到1之间的数字。

因此,要获得一段代码可以在一定百分比的时间内运行,请采用所需的百分比,将其除以100,然后在随机数小于该数量的情况下运行该代码。

if( Math.random() <0.5/100) {
/* code that runs 0.5% of the time */
}

,

Math.floor(Math.random())示例的问题在于,Math.floor()删除了数字的所有小数值。要使精度达到某个固定点,请乘以所需的最大整数,然后将其调整为固定的小数。


for (var i = 0; i <10; i++) {
var num = 10 * Math.random(); // Max 10.000...

console.log(num,num.toFixed(1) + '%') // Fix (and round) the first decimal
}



推荐阅读
author-avatar
我是vb小草
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有