如何将整数添加到数组并获得随机数?

Posted

技术标签:

【中文标题】如何将整数添加到数组并获得随机数?【英文标题】:How to add integers to an array and get a random number? 【发布时间】:2020-10-18 20:42:24 【问题描述】:

这是一个最喜欢的面板。 您可以选择数字(单击按钮),然后我想将此数字添加到数组中,然后从该数组中获取随机数。

public int runs;
public int randomNumber;
public int[] favorites = new int[75];

public void RandomButton()

    if (DataController.Instance.group == 3)
    
            favorites[randomNumber] = UnityEngine.Random.Range(0, favorites.Length);
            Debug.Log(favorites[randomNumber]);
    


public void b0()

    for (runs = 0; runs < favorites.Length; runs++)
    
        favorites[runs] = 0;
    


public void b1()

    for (runs = 0; runs < favorites.Length; runs++)
    
        favorites[runs] = 1;
    

我被卡住了,因为我得到了 0 到 75 之间的随机数。单击按钮后,我想从“收藏夹”数组中获得一个随机数。

【问题讨论】:

使用List&lt;int&gt;而不是固定大小的数组,它更适合您的需求。 @Gusman 在 Unity 中的公共数组通过 Inspector 进行初始化,并且可由开发人员调整。因此,除非您需要在运行时通过代码添加或删除元素,否则 List&lt;int&gt;int[] 的行为方式基本相同;) @derHugo 如果您阅读该问题,您将看到用户在运行时通过用户交互动态添加值。并且拥有Count 属性来知道列表中有多少个数字是解决他的问题的关键。所以,List&lt;int&gt; 是他需要的。 @Gusman 好点!实际上没有注意到添加值也是问题的一部分 @derHugo 问题是代码与问题无关,他的要求与他正在做的事情完全不同;) 【参考方案1】:

你在这里做什么

favorites[randomNumber] = UnityEngine.Random.Range(0, favorites.Length);

074 之间的随机值分配给数组中的项目.. 取决于randomNumber 在那一刻具有的任何值...

您更愿意做的实际上是使用随机值作为索引来访问数组中的值

randomNumber = favorites [UnityEngine.Random.Range(0, favorites.Length)];
Debug.Log(randomNumber);

但是,如果您使用b0b1 始终用相同的数字填充数组,会有什么不同?

运行这些方法后,所有元素要么是0要么是1...


无论如何,在您的问题中,您还询问如何添加一个数字。

您不应为此使用数组,而应使用 List&lt;int&gt; 之类的

public List<int> favorites = new List<int>();

public void AddNumber(int newNumber)

    favorites.Add(newNumber);


public void RandomButton()

    if (DataController.Instance.group == 3)
    
            randomNumber = favorites[UnityEngine.Random.Range(0, favorites.Count)];
            Debug.Log(randomNumber);
    

【讨论】:

我想他想要var number = favorites[rnd.Next(0, favorites.Length)];... 这基本上就是Random.Range(0, favorites.Count)(或数组的长度)所做的...... Next 上限为exclusive,不包括在内。 Random.Rangeint 参数一起使用时相同:Return a random integer number between min [inclusive] and max [exclusive] (Read Only). 谢谢!您的评论非常有帮助,但我想从这个数组中生成一个随机数。 b0 - 将数字 0 添加到位置 0 和 b1 将数字 1 添加到位置 1 所以收藏夹[0,1] 等等.. 并且从这个收藏夹[] 生成一个随机数 0 或 1 等【参考方案2】:
if (DataController.Instance.group == 3)

        var randomIndex = UnityEngine.Random.Range(0, favorites.Length);
        Console.WriteLine(favorites[randomIndex]); // random item from your array

answer

【讨论】:

以上是关于如何将整数添加到数组并获得随机数?的主要内容,如果未能解决你的问题,请参考以下文章

如何从字符串数组中获取随机字符串 [重复]

NSArray int[]

如何随机获得3-23之间的整数(请用JS代码实现)

如何随机化文本文件中获得的单词

求一个有一千个元素的整数数组的最大子数组的和

VB程序设计,用随机函数产生10个50以内(包括50)的随机整数存入一维数组。求出最大值并和数组中的首个