【发布时间】:2015-02-04 12:30:54
【问题描述】:
我确信应该有一种更有创意的方法来解决这个问题……有人感兴趣吗?
问:给定以下代码,确定“a”的可能值范围:
x = random_int(1,6)
y = random_int(1,6)
z = random_int(1,6)
a = x + y + z
我的回答:
var x, y, z, a;
var range = [];
for (var i = 0; i < 1000; i++) {
x = Math.floor(Math.random() * 6) + 1;
y = Math.floor(Math.random() * 6) + 1;
z = Math.floor(Math.random() * 6) + 1;
a = x + y + z;
range.push(a);
}
var min = Math.min.apply(null, range),
max = Math.max.apply(null, range);
document.write("The range is between " + min + " and " + max);
【问题讨论】:
-
好吧,我看不出最小值与 3 有何不同。你到底想做什么。
-
伪代码在哪里?
-
我正在寻找一种算法来解决它。显然我知道答案!
-
解决什么。据我所知,最小的 3*1 和最大的 3*6,尽管如果你做的次数足够多,你可能会得到少于 18 个。
-
给定代码意味着给定范围。结果范围只是 (sum mimima(ranges)..sum maxima(ranges)。你想在这里问什么?
标签: javascript algorithm mathematical-optimization