我有一个类似抽奖的程序:用户在一个项目上放置了 x 个令牌。这将作为 user_id、item_id、number_of_tokens 记录到数据库中
到了画画的时候,我会做以下事情:
$ballots = array();
$users = all users that placed at least one token on Item A.
foreach( $users as $user )
{
$number_of_ballots = Get number of ballots this User placed on Item A
for($i = 1; $i leq $number_of_ballots; $i++)
{
$ballots[] = $user->id;
}
}
shuffle( $ballots );
$winner_user_id = mt_rand(0, count($ballots) -1 );
现在我的问题是:
- 这能保证随机选择吗?
- 将 10 个代币放在物品 A 上的人获胜的机会是否比将 1 个代币放在物品 A 上的人高 10 倍?
谢谢你的帮助。