【发布时间】:2011-11-28 18:30:24
【问题描述】:
我有一个数字数组,每个数字都代表重量。数组中的数字介于 0 和 1 之间,这些数字的总和为 1。因此,如果说 array[1] 为 0.6,则表示我希望它显示大约 60% 的时间。我不知道数组本身,所以我不知道这些数字,例如它们是用户输入。
我有一个可行的解决方案,但我不知道这是否是最有效的方法。我的解决方案似乎非常低效。在这里
- 生成随机数
- 将此用户输入数组复制到一个新数组中并从小到大排序
- 将随机数与这个新数组中的数字进行比较,因此它会从数组中的最小值到最大值进行比较,当随机数小于数组号时,我会将数组号存储到一个变量中,比如 x 和退出循环
- 最后,我将 x 与原始数组进行比较,以确定 x 在原始数组中的索引是什么
这似乎需要做很多工作,有没有更简单的解决方案?我的头转得没那么快
编辑 - 原始数组未以任何方式排序
编辑 2 - 基本上我无法将此随机数与未排序的数组进行比较。我需要未排序的保持不变,这就是我在逻辑中创建新数组的原因
【问题讨论】:
-
你想做什么?
-
找出生成的随机数相对于数组的位置。这是一个旋转器,我需要找到要旋转的第一张幻灯片,通过机会/重量找到它。
-
你能发布一些代码吗?可以帮助其他人解决问题。
-
所以如果我有数组 [0.1, 0.5, 0.4],如果我的随机数是 0.6,那么我希望显示 0.5 的幻灯片,如果我的随机数是 0.3,那么它应该是 0.4 的幻灯片与有关
-
@RubbleFord 我没有写代码,因为我认为我的方法不好,我只需要弄清楚更好的逻辑然后我会写我的代码
标签: javascript logic