c# - 有没有办法在 C# 中生成随机数学表达式?

标签 c# algorithm random mathematical-expressions

我想在 c# 中生成随机数学表达式。

2*3-6         
2(85+96)*12-96       
78/8-9
... etc

请帮助我。

最佳答案

C#(或据我所知的任何语言)中没有 GetMeRandomMathExpression,但您可以像这样生成随机表达式:

  • 将所有操作数放入switch case

  • 使用随机数来决定表达式中有多少个操作数我将其命名为K

  • 使用随机 K 次和第一步中的 switch case 随机找到所有操作数。

  • 使用随机 K+1 次找到公式中需要的 K+1 个数。

462*823-61-263+518*490*479+851+276+13-208-418-537+486+476+15*227-274是一个随机表达式我用我的简单代码生成的:

using System;
using System.Text;

public class Test
{
    public static void Main()
    {
        Random r = new Random();
        StringBuilder builder= new StringBuilder();


        int numOfOperand = r.Next(1, 20); // it is just a test so I just want to have up to 20 operands.
        int randomNumber;
        for(int i = 0 ; i<numOfOperand ; i++){

            randomNumber = r.Next(1, 1000);
            builder.Append(randomNumber);


            int randomOperand = r.Next(1, 4);

            string operand = null;

            switch (randomOperand)
            {
                case 1:
                    operand = "+";
                break;
                case 2:
                    operand = "-";
                break;
                case 3:
                    operand = "*";
                break;
                case 4:
                    operand = "/";
                break;
            }
            builder.Append(operand);
        }
        randomNumber = r.Next(1, 1000);
            builder.Append(randomNumber);

        Console.WriteLine(builder.ToString());
    }
}

您可以找到在线版本here

关于c# - 有没有办法在 C# 中生成随机数学表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28848489/

相关文章:

c - 打印给定元素排列的程序

javascript - 我应该如何获得相同颜色的相邻 block ?

java - Java中如何随机选择字母?

c# - 在 DetailsView 中绑定(bind) DropDownList

c# - 如何通过方法参数锁定?

algorithm - 找到 N^2 个数字的中位数,其中有 N 个数字有内存

arrays - 给定 4 个包含 1 到 10 个元素的数组。找到 3 个数字,其和可以生成所有 4 个数字?

c# - 对包含透明元素的自定义 FrameworkElement 的整个区域进行 HitTest

c# - RaisePropertyChanged 设置回单选按钮的值

python - Numpy:随机数生成 - 将循环分成 block