【问题标题】:Array Of Random Alternate Positive And Negative Number in C#C#中的随机交替正负数数组
【发布时间】:2017-11-11 15:36:22
【问题描述】:

我想生成包含 10 个元素的数组,随机数在 (-10,10) 之间。

并且场景是数组可以包含(0,10)之间的正数,用于奇数位置 并且在偶数位置包含(-10,0)之间的负数

例如:1,-2,3,-4,7,-1,3,-3,2,-9

而且我完全坚持在偶数处生成 -ve 数,因为我是编程新手。

感谢任何帮助,谢谢提前

【问题讨论】:

  • 您可以使用 Random.next() 生成两个带有随机数的序列,然后将它们与例如.Zip() LINQ 方法交织在一起。
  • 谢谢你的帮助,但我是编程新手,所以我想要简单直接的答案会变得很困难
  • 抛出一些你尝试过的代码,以便人们了解你在解决方案中的位置。
  • 实际上我并没有被困在任何地方,但我认为逻辑与绝对初学者相同

标签: c# arrays loops random


【解决方案1】:

好的,我明白你的意思了。 试试这个代码

Random rand = new Random();
        int[] arr = new int[10];
        for(int i = 0; i < 10; i++)
        {
            if(i % 2 == 0) 
                arr[i] = rand.Next(1,10);

            else 
                arr[i] = (rand.Next(1,10)) * -1;                   
        }
        for(int i = 0; i < 10; i++)
        {
            Console.WriteLine(arr[i]);
        }

样本输出 1 -9 9 -8 1 -4 2 -6 4 -9

【讨论】:

  • i % 2 == 0 用于奇数?
  • 奇数是针对现实世界的场景而不是实际编程
【解决方案2】:

试试这个:

using System;

namespace ConsoleApp
{
    class Program
    {
        static void Main (string[] args)
        {
            var random = new Random ();

            var array = new int[10];

            for (int i = 0; i < array.Length; i++)
            {
                bool isOdd = (i % 2) == 1; // check remainder

                int randomNumber = random.Next (0, 11); // 0..10

                if (isOdd) randomNumber = -randomNumber; // change sign

                array[i] = randomNumber;
            }
        }
    }
}

【讨论】:

    【解决方案3】:

    这比迄今为止发布的所有答案都容易。这是一个基本的无限循环,可用于满足您的特定需求。

        public IEnumerable<int> RandomAlternatingSequence()
        {
            var random = new Random();
            int sign = -1;
    
            while (true)
            {
                sign *= -1;
    
                yield return sign * random.Next();
            }
        }
    

    我知道该帖子已有 2 年历史,但这可能会帮助其他前来寻找的人。

    【讨论】:

      猜你喜欢
      • 2014-12-05
      • 1970-01-01
      • 2012-01-26
      • 1970-01-01
      • 1970-01-01
      • 2011-12-17
      • 2018-11-19
      • 2011-04-19
      相关资源
      最近更新 更多