C#-不断添加9位数字

avi12

如标题所示,我正在用C#开发。
我想生成一个包含9个以上数字的数字,因此我考虑生成数字,然后是9。
例如,如果要生成一个具有10个数字的数字-我首先要生成一个具有以下数字的数字9个数字,然后是一个具有1位数字的数字。
如果生成数字20,则将生成第一个2个数字,每个数字9个数字,然后生成一个2个数字的数字。
这是我尝试过的:

for (int i = 0, j = (int.Parse(inputRandom.Text) % 9 == 0 ? int.Parse(inputRandom.Text) % 9 : int.Parse(inputRandom.Text) % 9 + 1); i < j; i++)
    if (i < (int.Parse(inputRandom.Text) % 9 == 0 ? j % 9 : j % 9 + 1) - 1)
        numToSend += (BigInteger)r.Next(int.Parse(1 + Zero((int.Parse(inputRandom.Text) % 9 + 8) * (inputRandom.Text.Length - 1))));
    else
        numToSend += (BigInteger)r.Next(int.Parse(1 + Zero(int.Parse(inputRandom.Text) % 9 * 9)));

零方法返回一个字符串,该字符串的0乘以指定的数字。即Zero(1)返回:“ 0”,
我需要此方法,因为该方法Next(Int32)可以返回一个数字,直到括号之间指定的数字为止。Next(10)返回0到9之间的数字。

我的目标

我想生成一个数字,其数字大于9,然后将数字放入字符串中numToSend我不能简单地这样做,因为该方法Next()只能生成ints。

彼得·杜尼奥(Peter Duniho)

即使您进行了修改,但我仍然认为问题不太清楚。但是,我确实认为我理解您实际上是在尝试生成一个随机BigInteger值,并且您希望该随机值在某个特定数字位数所定义的范围内。

例如,如果要求输入10位数字的值,则应返回0到9999999999之间的某个值。如果要求输入20位数的值,则应返回0到99999999999999999999之间的某个值。

基于这种理解,我相信这种方法应该可以满足您的要求:

BigInteger NextRandom(Random random, int digitCount)
{
    BigInteger result = 0;

    while (digitCount-- > 0)
    {
        result = result * 10 + random.Next(10);
    }

    return result;
}

请注意,返回的数字可能少于digitCount实际数字。实际上,发生这种情况的几率总是十分之一。并且结果的几分之一机会少于(digitCount-1)个数字,依此类推。

如果您想要与此有所不同,请更详细地说明所需输出确切要求(请阅读https://stackoverflow.com/help/how-to-ask,以获取有关如何以清晰明了的方式提出问题的建议,负责任的方式)。

例如,上面的代码不会在某个任意范围内生成随机值;(唯一)最大值只能是10的幂。此外,由于BigInteger工作原理,如果要查找具有特定位数的二进制数字,则可以简单地通过使用Random.NextBytes()方法来实现,并传递结果数组(进行适当修改以确保例如正值)。

另请参见C#随机BigInt生成器,以获取更多启发(我会为重复生成器投票,但是从您的描述看来,您可能正在寻找与该问题所要求的结果略有不同的结果)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用C#将月份或日期转换为2位数字字符串

来自分类Dev

在C#中创建一个6位数字的序列号

来自分类Dev

如何在C / C ++中最多计算1000位数字中的位数

来自分类Dev

在C ++中将int转换为2位数字的字符串

来自分类Dev

C#AssemblyVersion 3位数字,用于NuGet的PreRelease版本控制

来自分类Dev

错误的结果将C中的两个32位数字相乘

来自分类Dev

在数字C#中插入1位

来自分类Dev

C将20位数字的字符串转换为数字以进行IBAN验证

来自分类Dev

数字降序C#

来自分类Dev

使用void指针在c中存储128位数字

来自分类Dev

指数的最后一位数字-错误答案-C#

来自分类Dev

仅10位数字的正则表达式验证器C#asp.net

来自分类Dev

如何在C中读取以空格分隔的0-9位数字?

来自分类Dev

C-比较两个四位数数字数组的函数

来自分类Dev

问题在C中转换无符号64位数字的字节顺序

来自分类Dev

C ++如何在32位数字中更改4位的值

来自分类Dev

c#正则表达式包含“ 9位数字”并以“ 07”开头

来自分类Dev

C#如何验证字符串属性以仅接受10位数字

来自分类Dev

C语言的3位数字生成器

来自分类Dev

如何在C / C ++中最多计算1000位数字中的位数

来自分类Dev

c程序,允许用户更改已设置的4位数字引脚

来自分类Dev

在C ++中将int转换为2位数字的字符串

来自分类Dev

在C#中获取数字位数

来自分类Dev

在C#中查找数字的位数

来自分类Dev

C中32位数字的乘法

来自分类Dev

错误的结果将C中的两个32位数字相乘

来自分类Dev

仅10位数字的正则表达式验证器C#asp.net

来自分类Dev

没有小数点和2位数字的C#双重类型格式

来自分类Dev

在 C# 中使用 Regex 匹配 10 或 12 位数字

Related 相关文章

热门标签

归档