相关疑难解决方法(0)

生成(U)Int64和Decimal的(伪)随机约束值

注意:为简洁起见,以下内容无法区分随机性和伪随机性.此外,在此上下文中,约束意味着给定的最小值和最大值之间)

System.Random类提供随机生成整数,双打和字节数组.使用Random.Next,可以轻松生成类型为布尔值,字符,(S)字节,(U)Int16,(U)Int32的随机约束值.使用时Random.NextDouble(),可以类似地生成Double和Single类型的约束值(就我对此类型的理解而言).随机串生成(给定长度和字母的)已经 解决 之前.

考虑剩余的原始数据类型(不包括Object):Decimal和(U)Int64.他们的随机生成也已被解决(Decimal,(U)Int64使用Random.NextBytes()),但不受限制.理论上可以使用拒绝采样(即循环直到生成的值是所需范围),但这显然不是一个实际的解决方案.归一化NextDouble()不起作用,因为它没有足够的有效数字.

简而言之,我要求正确实现以下功能:

long NextLong(long min, long max)
long NextDecimal(decimal min, decimal max)
Run Code Online (Sandbox Code Playgroud)

请注意,由于System.DateTime基于ulong,第一个函数也允许随机约束生成此类结构(类似于此处,仅在刻度而不是分钟内).

c# random

5
推荐指数
2
解决办法
6621
查看次数

如何从c#中的范围生成随机数

所以我需要根据用户设置的参数生成随机数,并制作一个基本的数学表达式.他们有3个选择; 单数,双数或三位数.所以基于此我需要生成0到9,0到99和0到100的随机数.

到目前为止,我已经阅读了关于Random课程的内容.这是我的不良尝试:

Random rnd = new Random();
int value = 0;

if (digits == 1)
{
    rnd.Next(value);
    q1Lbl.Text = value.ToString();
}
Run Code Online (Sandbox Code Playgroud)

c# random generator

2
推荐指数
1
解决办法
2万
查看次数

"随机查找"序列生成器

我想不出一个好方法,如果可能的话,我会感激一些帮助!

我担心我没有任何代码可以发布,因为我没有那么远.

我需要从0-999范围内的3个(或可能更多)参数生成一系列值.

对于给定的输入,该值必须始终相同,但在上边界和下边界之间具有公平分布,以便看起来是随机的.

例如:

function (1, 1, 1) = 423

function (1, 1, 2) = 716

function (1, 2, 1) = 112
Run Code Online (Sandbox Code Playgroud)

这些必须合理地快速生成,我的意思是我应该能够在网页加载期间生成100-200而没有明显的延迟.

该方法必须可以在C#中执行,但也可以在JavaScript中执行,否则我可能会使用CRC32或MD5哈希算法.

如果有帮助,这将用作程序生成例程的一部分.

我以前曾经问过这个问题,但我认为我的解释质量很差让我失望.

如果措辞严厉,我道歉.如果是的话,请告诉我,我会尝试进一步解释.

非常感谢您的帮助.

javascript c# procedural-generation

1
推荐指数
1
解决办法
308
查看次数

生成两个数字之间的随机数

我正在编写一个生成二进制(黑白)图像的程序.白色的ARGB(Alpha,红色,绿色,蓝色)是黑色(0,255,255,255)和(0,0,0,0)黑色.所以我使用Random数字来生成二进制位图

int a = rnd.Next(256);
int r = rnd.Next(256);
int g = rnd.Next(256);
int b = rnd.Next(256);
Run Code Online (Sandbox Code Playgroud)

但是使用这个数字范围会生成一个颜色图像,所以我只需要0或255的随机数,它们之间没有任何关系.记住它是二进制而不是灰度图像.

c#

0
推荐指数
1
解决办法
1238
查看次数