Я хочу генерировать случайные математические выражения в c#
как.Есть ли способ генерации случайных математических выражений в C#?
2*3-6
2(85+96)*12-96
78/8-9
... etc
, пожалуйста, помогите мне в этом.
Я хочу генерировать случайные математические выражения в c#
как.Есть ли способ генерации случайных математических выражений в C#?
2*3-6
2(85+96)*12-96
78/8-9
... etc
, пожалуйста, помогите мне в этом.
Там не в C# нет GetMeRandomMathExpression
(или любой другой язык, насколько я знаю), но вы могли бы генерировать случайные выражения вроде этого:
Поместите все операнды в 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
является случайным выражением, которое я произвожу с моим простым кодом:
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
Вы должны быть более строгими. Какими правилами должны следовать выражения (какие операции?, Сколько оперантов ?, какой диапазон - значения?, Целые числа?) И что вы считаете случайным? Вы хотите равномерно распределить одно выражение из набора всех разрешенных выражений? Или это просто «смотреть случайно»? –