首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有没有办法在c#中生成随机数学表达式?

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

Stack Overflow用户
提问于 2015-03-04 07:09:15
回答 1查看 2.9K关注 0票数 0

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

代码语言:javascript
运行
复制
2*3-6         
2(85+96)*12-96       
78/8-9
... etc

请帮我这个忙。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-04 07:31:54

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

  • 将所有操作数放在switch case
  • 使用随机方法确定表达式中有多少操作数,我将其命名为K
  • 第一步使用随机K时间和开关情况来随机查找所有操作数。
  • 使用随机的K+1时间来查找公式中需要的K+1数。

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

代码语言:javascript
运行
复制
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());
    }
}

你可以找到在线版本的这里

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28848489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档