这是一个获取卷号的脚本(在CSGODOUBLE中使用):
$server_seed = "39b7d32fcb743c244c569a56d6de4dc27577d6277d6cf155bdcba6d05befcb34";
$lotto = "0422262831";
$round_id = "1";
$hash = hash("sha256",$server_seed."-".$lotto."-".$round_id);
$roll = hexdec(substr($hash,0,8)) % 15;
echo "Round $round_id = $roll";
这会滚动一个从0到14的数字。每次都是相同的,直到哈希值发生变化。
我需要从 0到4 滚动 5 数字,但它们不能重复。我需要使用相同的哈希系统来实现。
示例:
$hash = "FIRST";
Outcomes:0,3,1,2,4;
$hash = "SECOND";
Outcomes:1,4,2,3,0;
$hash = "THIRD";
Outcomes:2,0,1,3,4
// etc.
此外,在JavaScript中获取公式是完美的,但PHP也适用。
答案 0 :(得分:0)
尝试使用Array.prototype.slice()
复制原始数组,Array.prototype.splice()
以从复制的数组中检索项目,Math.floor()
,Math.random()
,while
循环< / p>
var arr = [0,1,2,3,4];
var res = [];
var copy = arr.slice(0);
while (copy.length) {
res.push(copy.splice(Math.floor(Math.random() * copy.length), 1)[0]);
}
document.write(res)
答案 1 :(得分:0)
var arr = [0,1,2,3,4];
var res = [];
var copy = arr.slice(0);
while (copy.length) {
res.push(copy.splice(Math.floor(Math.random() * copy.length), 1)[0]);
}
document.write(res)