谁能给我个自动生成数学公式的小程序,谢谢,100分

ljstudio 2011-08-05 10:31:52
比如说有 A B C D E 五个变量,要能根据 + - * / ,还有 sin、cos、tan、PI、 sqrt 、LOG 等函数自动生成公式,比如说:

sin(A)+ cos(A+B)* PI

tan(sqrt(A*D)- 2* E)+ LOG(C* D*E)

...等等

说明白了吧?
谢谢
...全文
230 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
ljstudio 2011-08-14
  • 打赏
  • 举报
回复
明天结贴,见者有份
小赖赖 2011-08-14
  • 打赏
  • 举报
回复
楼主自己实现了啊,顶下
CaRrot_Love 2011-08-07
  • 打赏
  • 举报
回复
学习了 顶下..
Rich 2011-08-07
  • 打赏
  • 举报
回复
恩,学习了!不过个人感觉,数学公式生成还是要有一定的规则的吧,比如要按照一定计算方式!
LMAOhuaNL 2011-08-07
  • 打赏
  • 举报
回复
我顶顶LS的
ljstudio 2011-08-07
  • 打赏
  • 举报
回复
嗯,这就算完了,不要那些函数了,可能算起来会比较慢
谢谢大家了,虽然没帮上什么忙,不过也挺热心的,等有时间就来结贴吧,见者有份

function dx(n:Integer=-1):string;
var
i,j,tn,mx:Integer;
begin
Randomize;

mx:= 28;
i:= Random(mx);
j:= Random(mx);

tn:= n;
if tn=-1 then
begin
repeat
tn:= Random(mx)+12;
until tn<=mx;
end;

case tn of
0:Result:= 'A';
1:Result:= 'B';
2:Result:= 'C';
3:Result:= 'D';
4:Result:= 'E';
5:Result:= 'HZ';
6:Result:= 'KD';
7:Result:= 'HW';
8:Result:= 'QW';
9:Result:= 'PJ';
10:Result:= 'DS';
11:Result:= 'XS';
12:Result:= dx(Random(11))+ dx(Random(11));//两个数合并
13:Result:= dx(i) +'+'+ dx(j);
14:Result:= dx(i) +'-'+ dx(j);
15:Result:= dx(i)+'*'+ dx(j);
16:Result:= dx(i)+'/'+ dx(j);
17:Result:= dx(Random(16)) + '+ 0.618';
18:Result:= dx(Random(16)) + '- 0.618';
19:Result:= dx(Random(16)) + '* 0.618';
20:Result:= dx(Random(16)) + '/ 0.618';
21:Result:= '0.618/'+ dx(Random(16));
22:Result:= '0.618-'+ dx(Random(16));
23:Result:= dx(Random(16)) +'+'+ IntToStr(Random(100)+1);
24:Result:= dx(Random(16)) +'-'+ IntToStr(Random(100)+1);
25:Result:= dx(Random(16)) +'*'+ IntToStr(Random(100)+1);
26:Result:= dx(Random(16)) +'/'+ IntToStr(Random(100)+1);
27:Result:= IntToStr(Random(100)+1)+'-'+dx(Random(16));
28:Result:= IntToStr(Random(100)+1)+'/'+dx(Random(16));
end;
end;

调用:
procedure TForm1.Button1Click(Sender: TObject);
var
i:Integer;
ts:string;
begin
//
Memo1.Clear;
for i:= 0 to 100 do
begin
repeat
ts:= dx;
until (Length(ts)>15) and (Length(ts)<40);

Memo1.Lines.Add(ts);
end;
意识模糊 2011-08-07
  • 打赏
  • 举报
回复
顶!学习一下
ustbwuyi 2011-08-06
  • 打赏
  • 举报
回复
可以尝试用表达式树来创建。
ljstudio 2011-08-06
  • 打赏
  • 举报
回复
自己顶一下
ljstudio 2011-08-06
  • 打赏
  • 举报
回复
to ustbwuyi:
可以给个简单一点的例子吗,谢谢!
ljstudio 2011-08-05
  • 打赏
  • 举报
回复
to icansaymyabc:
这不是作业

to gefangliang:
我要的是随机自动生成公式的。根据公式计算这个倒是不需要。
icansaymyabc 2011-08-05
  • 打赏
  • 举报
回复
作业!不支持

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧