c# - 随机具有特定数量的特定值

标签 c# random percentage

我的问题如下:我需要为调度创建一些随机值。例如,给出了处理时间。假设机器上的作业 j 得到一个介于 (1,99) 之间的随机值。那是这台机器上的工作需要的时间。

现在,我需要操纵这个随机值。我想说的是所有随机处理时间,其中 20% 是零处理时间。那么有人知道如何在特定时间给整数数组一个特定数量的数组吗?

这里是正常的随机数:

p_machine_job_completionTime = new int[Constants.numberMachines][];
        for (i = 0; i < Constants.numberMachines; i++)
        {
            p_machine_job_completionTime[i] = new int[Constants.numberJobs];
            for (j = 0; j < Constants.numberJobs; j++)
            {
                p_machine_job_completionTime[i][j] = random.Next(1, 99);
            }
        }

现在,作业可能会跳过一台机器,因此处理时间为 0。是否可以限制随机值,并保证我所有随机值的 x% 的值为 0? 例如:

20% of p_machine_job_completionTime[i][j] = 0
80% of p_machine_job_completionTIme[i][j] = random (1,99)

我非常感谢任何微小的建议。

最佳答案

只需分开两种情况:当返回 0 时为 20%,当结果为 1..99 时为 80%

Random random;

...

int value = random.Next(5) == 0 ? 0 : random.Next(99) + 1;

关于c# - 随机具有特定数量的特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21412958/

相关文章:

c# - Nhibernate GetById 返回 ObjectNotFoundException insetad of null

c# - 在没有 OverflowException 的情况下将 "1.79769313486232E+308"转换为 double?

c# - Silverlight 中的随机动画

java - jfreechart自定义饼图显示绝对值和百分比

r - 在 R 中有效计算百分位数排名

c# - 在 WPF 应用程序中全局设置文化 (en-IN)

c# - ListView 切换位置

c# - 如何获得带有空格和混合大小写的随机字符串?

c# - 用四个不同的数字随机填充列表

mysql - mysql WHERE CLAUSE 中的百分比