javascript - 是否可以为生成器中的图像添加权重?

标签 javascript random

我希望制作一个随机图像生成器(工作正常),但是,我想知道是否有一种方法可以为某些图像添加权重,而这些图像不会像其他图像那样出现?

我已附上以下代码:

<script language="JavaScript">

function random_imglink(){
var myimages=new Array()

myimages[1]="Blue_Car.png"
myimages[2]="Red_Car.png"
myimages[3]="White_Car.png"
myimages[4]="Black_Car.png"


var ry=Math.floor(Math.random()*myimages.length)
if (ry==0)
ry=1
document.write('<img src="'+myimages[ry]+'" border=0>')
}
random_imglink()


function confirmRefresh() {
var okToRefresh = confirm("Do you really want to refresh the page?");
if (okToRefresh)
    {
            setTimeout("location.reload(true);",10);
    }
}

</script>
<input type="button" value="Generate a new player" onClick="document.location.reload(true)">


</script>
</a></p>

我确实对 JavaScript 有一点了解,但是,我不是专业人士。

最佳答案

var myimages=new Array();
myimages[0]="Blue_Car.png";
myimages[1]="Red_Car.png";
myimages[2]="White_Car.png";
myimages[3]="Black_Car.png";
// myimages[4] = ...

// All values summed up must equal 1
var probabilities=new Array();
probabilities[0]=0.1;  // 10%
probabilities[1]=0.1;  // 10%
probabilities[2]=0.25; // 25%
probabilities[3]=0.55; // 55%
// probabilities[4] = ... (also need to change the other probability values)

function getImage() {
    var rand = Math.random();
    var probabilitiy_sum = 0;
    for(var i=0; i < probabilities.length; i++) {
        probabilitiy_sum += probabilities[i];
        if(rand <= probabilitiy_sum ) {
            return myimages[i];
        }
    }
    return myimages[myimages.length];
}

// Just for testing:
for(var i=0; i < 10; i++) {
    document.getElementById("textbox").innerHTML += getImage() + "<br />";
}
<div id="textbox"></div>

关于javascript - 是否可以为生成器中的图像添加权重?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28696298/

相关文章:

swift - arc4random() 和 arc4random_uniform() 不是真正随机的?

c - 如何用一个函数获取没有重复值的数组

c++ - std::random_device 在 g++ 中不工作

php - 在php中为文件名生成随机字符串

r - 在 R 中生成带约束的随机数

javascript - 下载的 tar 文件无法在 Node js 中打开。?

javascript - 如何在JavaScript中的自定义LISP中编写宏扩展

javascript - Node JS,完成后运行相同的功能

javascript - gulp - 缩小 CSS 时排除文件

javascript - neo4j 驱动程序 session 未执行