c# 随机函数与数组的关系和操作

我想把数据12 7 23 16 87 56 21 91这几个数据放入数组,
随机函数只从这几个数中取其中一个,该怎么样取值呢?

 Random rd = new Random();
        

可以这样啊,随机限定生成0-7数作为下标取数组对应的数输出就行
【运行结果】

img

【代码】

using System;
 
class Program
{
    static void Main(string[] args)
    {
        int[] data = new int[] {12, 7, 23, 16, 87, 56, 21, 91};
        Random rnd = new Random();
        int randomIndex = rnd.Next(data.Length);
        int[] selectedIndex = new int[rnd.Next(8)];
        
        for(int i=0; i<selectedIndex.Length; i++)
        {
            selectedIndex[i] = rnd.Next(data.Length);
        }
        
        Console.WriteLine("随机选择一个数:");
        Console.WriteLine(data[randomIndex]);
 
       
    }
}
 
 

多种方式实现,你看看你具体想要哪一种:直接代码!!!:

利用C#的Random类生成一个随机数,数组名[下标] 的方法取值 -------------------------------- 这是原理

int[] data = {12, 7, 23, 16, 87, 56, 21, 91};
Random rand = new Random();
int index = rand.Next(data.Length);
int value = data[index];
Console.WriteLine(value);

int[] array = {12, 7, 23, 16, 87, 56, 21, 91};
Random random = new Random();
int index = random.Next(0, array.Length); // 生成0到array.Length-1之间的随机数
int value = array[index]; // 获取随机下标对应的值
Console.WriteLine(value);

这里!!!!!你所说的循环的方式放入:

int[] array = new int[100]; // 创建长度为100的数组
int[] data = {12, 7, 23, 16, 87, 56, 21, 91};
int index = 0;
for (int i = 0; i < array.Length; i++)
{
    array[i] = data[index];
    index = (index + 1) % data.Length; // 计算下一个元素的下标,循环到数组末尾则从头开始
}
Random random = new Random();
int randomIndex = random.Next(0, data.Length); // 生成0到data.Length-1之间的随机数
int value = array[randomIndex]; // 获取随机下标对应的值
Console.WriteLine(value);

int[] nums = new int[] { 12, 7, 23, 16, 87, 56, 21, 91 };
Random rd = new Random();
int num = nums[rd.Next(nums.Length)];

Random.next(int number) 默认会从[0,number)里面选

该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
在C#中,可以使用Random类生成随机数。要从给定的数组中随机选择一个数,可以使用Random类的Next()方法生成一个随机整数,然后使用该整数作为数组的索引。以下是一个示例代码,演示如何将给定的数放入数组,并随机选择一个数:

using System;

class Program
{
    static void Main(string[] args)
    {
        int[] numbers = { 12, 7, 23, 16, 87, 56, 21, 91 };

        Random rnd = new Random();
        int index = rnd.Next(numbers.Length);

        Console.WriteLine("随机选择的数是:" + numbers[index]);
    }
}

在这个示例中,首先定义了一个整型数组numbers,其中包含了给定的数。然后创建了一个Random对象rnd,使用Next()方法生成一个随机整数index,使用index作为数组的索引,从而随机选择一个数输出。

请注意,Next()方法返回的随机整数是大于等于0且小于指定的最大值,因此在这个示例中,index的范围是0到7(包括0和7),对应了数组numbers中的8个元素。


如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

你好,你可以使用Random类的Next方法来从数组中随机取一个元素。代码参考:

// 创建一个数组,存放数据
int[] data = {12, 7, 23, 16, 87, 56, 21, 91};
// 创建一个Random对象
Random random = new Random();
// 随机取一个数组的索引,范围是0到数组的长度-1
int index = random.Next(0, data.Length);
// 根据索引取出数组中的元素
int value = data[index];
// 打印结果
Console.WriteLine("随机取出的元素是:" + value);

来自NewBing和LP的编写:

从这几个数中取其中一个:

Random rd = new Random();
int[] data = new int[] {12, 7, 23, 16, 87, 56, 21, 91};
int randomValue = data[rd.Next(data.Length)];

rd.Next(data.Length) 会生成一个从0到data.Length-1的随机索引,然后你就可以用这个索引从数组中取出一个随机的元素。

如何循环地将值写入数组,这里有一个例子:

List<int> dataList = new List<int> {12, 7, 23, 16, 87, 56, 21, 91};
int[] data = new int[dataList.Count];

for (int i = 0; i < dataList.Count; i++)
{
    data[i] = dataList[i];
}

建一个int类型的列表,然后建一个和这个列表有相同元素数量的数组。通过循环,把列表中的每一个元素写入到数组中。

完整代码:

using System;
using System.Collections.Generic;

public class Program
{
    public static void Main()
    {
        // 创建一个数组并从中随机选择一个元素
        Random rd = new Random();
        int[] data = new int[] { 12, 7, 23, 16, 87, 56, 21, 91 };
        int randomValue = data[rd.Next(data.Length)];
        Console.WriteLine("随机选择的元素是:" + randomValue);

        // 将列表的值写入数组
        List<int> dataList = new List<int> { 12, 7, 23, 16, 87, 56, 21, 91 };
        int[] newArray = new int[dataList.Count];

        for (int i = 0; i < dataList.Count; i++)
        {
            newArray[i] = dataList[i];
        }

        Console.WriteLine("写入数组的值是:");
        foreach (int value in newArray)
        {
            Console.WriteLine(value);
        }
    }
}


  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7492084
  • 除此之外, 这篇博客: C#,人工智能,机器学习,聚类算法,训练数据集生成算法、软件与源代码中的 三、训练数据集及生成算法 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 不同的数据集应该选择不同的算法。

    生产环境的聚类算法用于处理真实的生产数据。但是在算法成熟之前,需要大量不同的训练数据用于发现问题、改善算法。

    训练数据集可以用一个方便的软件实现。在本文之前可以搜索到信息是,大多依赖于现有的软件比如 Matlab 和一些程序包生成有限类型的数据集合。

    本文用纯C#实现了一套完全交互式的,可由用户自由发挥的训练数据集生成软件。

3步吧
1、把数据放进数组;

list.AddRange(new[] { 12, 7, 23, 16, 87, 56, 21, 91 });

2、随机生产数组下标;

var rIndex = new Random().Next(0, list.Count);

3、得到结果;list[rIndex]


完整的样子:

var list = new List<int>();
list.AddRange(new[] { 12, 7, 23, 16, 87, 56, 21, 91 });
// list.AddRange("12 7 23 16 87 56 21 91".Split(" ").Select(s => int.Parse(s)));

var rIndex = new Random().Next(0, list.Count);
Console.WriteLine(list[rIndex]);

您可以使用 Random 类来生成一个随机数,然后使用该随机数作为索引来选择数组中的元素。以下是使用 C# 实现的示例代码:

using System;

class Program
{
    static void Main()
    {
        int[] data = { 12, 7, 23, 16, 87, 56, 21, 91 };

        Random random = new Random();
        int randomIndex = random.Next(data.Length); // 生成一个介于 0 和数组长度之间的随机数

        int selectedValue = data[randomIndex]; // 使用随机数作为索引来选择数组中的元素

        Console.WriteLine("随机选择的值: " + selectedValue);
    }
}

在上面的示例中,我们创建了一个名为 data 的整数数组,其中包含要选择的数据。然后,我们使用 Random 类创建了一个随机数生成器对象 random。通过调用 Next(data.Length) 方法,我们生成一个范围在 0 到数组长度之间的随机数 randomIndex。最后,我们使用 randomIndex 作为索引来选择 data 数组中的元素,并将其存储在 selectedValue 变量中。

请注意,每次运行代码都会生成一个不同的随机数,并选择相应的数组元素。


int[] s = new int[] { 12, 7, 23, 16, 87, 56, 21, 91 };
Random r = new Random();
int n = nums[r.Next(s.Length)];

以下答案由GPT-3.5大模型与博主波罗歌共同编写:
首先,您需要定义一个整数类型的数组,并将您给出的数据放入数组中。代码如下:

int[] data = new int[] { 12, 7, 23, 16, 87, 56, 21, 91 };

接下来,您可以使用C#的随机数函数来随机选取数组中的一个元素。可以使用Next方法来获取非负随机整数。您还可以将该随机整数除以数组长度,然后取模运算以确保其始终不超出数组索引范围。

Random rd = new Random();
int randomIndex = rd.Next(data.Length);
int randomValue = data[randomIndex];

此时,randomValue即为您从数组data中随机选择的一个元素的值。完整代码如下:

int[] data = new int[] { 12, 7, 23, 16, 87, 56, 21, 91 };
Random rd = new Random();
int randomIndex = rd.Next(data.Length);
int randomValue = data[randomIndex];
Console.WriteLine("随机选取的值为:" + randomValue);

输出结果类似于:"随机选取的值为:56"
如果我的回答解决了您的问题,请采纳!