【问题标题】:Generating a 4–8 digit random number生成 4-8 位随机数
【发布时间】:2013-06-18 03:33:41
【问题描述】:
Random random = new Random();
int password = random.Next(10000);

这也会生成 2 位和 3 位数字。如何在 C# 中生成 4-8 位随机数?

【问题讨论】:

标签: c# random


【解决方案1】:

覆盖所有基数(1000 以下的数字,例如 0002)

Random RandomPIN = new Random();
var RandomPINResult = RandomPIN.Next(0, 9999).ToString();
RandomPINResult = RandomPINResult.PadLeft(4, '0');

【讨论】:

  • 为什么不:Random RandomPIN = new Random(); var RandomPINResult = RandomEASPIN.Next(0, 9999).ToString("D4");
【解决方案2】:

new Random(Guid.NewGuid().GetHashCode()).Next(0, 9999).ToString("D4")

【讨论】:

  • 它使用经典的随机值,但作者意识到需要种子才能获得真正的随机值。所以下一步就是从一个区间生成一个 int 并确保它的格式是预先挂起的(左填充)零(4 位长度)。
【解决方案3】:

从最小的 4 位数字开始,以最小的 9 位数字结束(不包括):

int password = random.Next(1000, 100000000);

【讨论】:

    【解决方案4】:

    你也可以做一个方法:

    public static int GetRandom(int minDigits, int maxDigits)
    {
        if (minDigits < 1 || minDigits > maxDigits)
            throw new ArgumentOutOfRangeException();
    
        return (int)random.Next(Math.Pow(10, minDigits - 1), Math.Pow(10, maxDigits - 1));
    }
    

    【讨论】:

    • 你可以,但你为什么要这样做?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-05
    • 2014-03-19
    • 1970-01-01
    相关资源
    最近更新 更多