【问题标题】:Random value to each single argument of array [duplicate]数组的每个单个参数的随机值[重复]
【发布时间】:2014-08-29 09:21:31
【问题描述】:

我的程序有问题。我想设置我的数组有多少索引,然后为每个索引创建自己的随机值。而不是那个循环 foreach 为每个索引创建一个值。我尝试了 for 和 Length of array 但它没有用。我做错了什么?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Set the number of arguments in mineArray:");
            string argumentsNumber = Console.ReadLine();
            int argumentsNumberInt = Convert.ToInt32(argumentsNumber);
            int[] mineArray = new int[argumentsNumberInt];

            //set up values to each index of array
            for (int i = 0; i < mineArray.Length; i++)
            {
                Random rand = new Random();
                mineArray[i] = rand.Next(0, 100);
                Console.WriteLine(Convert.ToString(mineArray[i]));

            }
            //end of the program
            Console.ReadLine();

        }
    }
}

【问题讨论】:

    标签: c# arrays random numbers


    【解决方案1】:

    在循环外初始化随机数:

    Random rand = new Random();
    
    for (int i = 0; i < mineArray.Length; i++)
    {           
        mineArray[i] = rand.Next(0, 100);
        Console.WriteLine(mineArray[i]); // you don't need to convert to string
    }
    

    当您创建 Random 类的实例时,它使用当前系统刻度作为伪随机数生成的种子。如果您很快创建多个 Random 实例,它们将获得相同的种子,并且您将在数组中拥有相同的数字。

    【讨论】:

    • 非常感谢!我没想到!
    • 现在我有另一个问题。我的程序为数组的每个参数分配随机数。但最后最后一个数字填充了所有参数。像 radioming 6,7,8,4,5,3 但我得到 3,3,3,3,3,3
    • @user3297615 这是 SO 的工作原理 - 如果解决了一个问题,您应该接受答案。如果您还有其他无法解决的问题,请创建新问题。如果不查看您的代码,很难判断出了什么问题。您在某些时候会覆盖项目
    猜你喜欢
    • 2021-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-12
    • 2021-12-26
    • 2011-05-13
    • 1970-01-01
    • 2016-01-23
    相关资源
    最近更新 更多