C# 我可以基于两个数字生成一个6位数的随机数吗?

C# 我可以基于两个数字生成一个6位数的随机数吗?,c#,random,C#,Random,我有两个号码: IMEI号码:12345678912345 随机Pin:654321 我的随机pin码总是变化。基于这种组合(IMEI和PIN),有没有办法生成一个6位数的随机数 我想在C#中完成它。那么(IMEI+Pin)%900000+100000如何?最简单的方法是使用两个数字的函数为随机数生成器设定种子 Random r = new Random(IMEA+Pin); int v = r.Next()%900000 + 100000; 在本例中,函数只是求和,但您肯定可以找到更合理的结

我有两个号码:

  • IMEI号码:12345678912345
  • 随机Pin:654321
  • 我的随机pin码总是变化。基于这种组合(IMEI和PIN),有没有办法生成一个6位数的随机数


    我想在C#中完成它。

    那么(IMEI+Pin)%900000+100000如何?

    最简单的方法是使用两个数字的函数为随机数生成器设定种子

    Random r = new Random(IMEA+Pin);
    int v = r.Next()%900000 + 100000;
    

    在本例中,函数只是求和,但您肯定可以找到更合理的结果。。这只是给你一个想法。

    修正了杰克的答案

    int seed = unchecked((int)(imie+pin));
    Random r = new Random(seed);
    int[] result = new int[100];
    for (int i = 0; i < 100; i++) {
        result[i] = r.Next() % 900000 + 100000;
    }
    
    int seed=unchecked((int)(imie+pin));
    随机r=新随机(种子);
    int[]结果=新的int[100];
    对于(int i=0;i<100;i++){
    结果[i]=r.Next()%900000+100000;
    }
    

    根据突然发现的需要100个数字的情况编辑固定答案

    您想要一个6位数的随机数字,还是希望IMEI+PIN每次都生成相同的数字(例如,某种散列)?是的,我还想要基于此IMEI+PINi的100个唯一数字,如mod 900000+100000。以前没见过!编译器错误。。。“System.Random.Random(int)”的最佳重载方法匹配在第1行第12列参数1处有一些无效参数:无法在第1行第23列从“long”转换为“int”:Random r=new Random(IMEA+Pin);随机数不接受以int为参数的双倍数。。。因为IMEI+引脚是19位数字,所以必须将其模化为参数的最大界(int)(IMEA+引脚%int.max)