我试图制作一个随机项目选择器,随机选择项目3乘3.概率不相等。
frama-c ./ssl/d1_both.c -main dtls1_process_heartbeat -slice-calls memcpy -cpp-command "gcc -C -E -I ./include/ -I ./" -then-on 'Slicing export' -print
3比3完成的选择总是相同的3次,然后它会改变。
PS:我知道,doContinue事情没有实现。
答案 0 :(得分:0)
Random
对象根据当前的计算机时间自行播种,因此,如果您每次拨打Random
时都创建一个新的Pick()
对象,那么它将生成相同的数字。 #39;快速连续呼叫。
尝试重用Random
实例,如下所示:
class Program
{
static bool doContinue = true;
static double[] numbers = { 4, 12, 28, 60, 124, 252, 508, 1020, 2044, 4092, 4120, 4176, 4288, 4512, 4960, 5856, 7648, 11232, 18400, 32736 };
static Random random = new Random();
static string Pick()
{
double rnd = random.NextDouble() * 32736;
...