有没有办法在 C# 中生成随机数学表达式?
Is there any way to generate random mathematical expressions in c#?
我想在 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 个数字。
like 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#
中生成随机数学表达式。
2*3-6
2(85+96)*12-96
78/8-9
... etc
请帮帮我。
C#(或据我所知的任何语言)中没有 GetMeRandomMathExpression
,但您可以像这样生成随机表达式:
将所有操作数放入
switch case
使用随机数来决定你的表达式中有多少个操作数我命名为
K
.使用随机
K
次和第一步的switch case来随机找到所有的操作数。使用随机
K+1
次来找到您在公式中需要的 K+1 个数字。
like 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