社区
数据结构与算法
帖子详情
随机生成逆波兰式···················
Kevin_qing
2001-06-01 01:38:00
讨论一下:
有什么比较简单的算法可以生成这个东西?
...全文
223
15
打赏
收藏
随机生成逆波兰式···················
讨论一下: 有什么比较简单的算法可以生成这个东西?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Kevin_qing
2001-06-04
打赏
举报
回复
靠~~~~~~~~
为什么没有给分的选项了?
Kevin_qing
2001-06-01
打赏
举报
回复
结帐
Kevin_qing
2001-06-01
打赏
举报
回复
分两遍计算好了,
先生成opt 和data的排列,再生成具体的操作符和操作数,最后生成机器代码
liuto
2001-06-01
打赏
举报
回复
呵呵,好,有意思
liuto
2001-06-01
打赏
举报
回复
你可以设最初两个必须是操作数。还要写两个函数,一个随即产生数,一个随即产生符
Kevin_qing
2001-06-01
打赏
举报
回复
nValideData=0;
while(1)
{
if(in is data )
{
nValideData++;
}
else
{
nValideData-=opt_req[in];//(该操作需要的操作数个数)
nValideData+=1;
}
assert(nValideData>0);
}
来试试扫描
ab+c+d!+
1:
in=a
nData=1;
2:
in=b
nData=2
3:
in=+
nData=1;
4:
in=d
nData=2
5:
in=!
nData=2
6
in=+
nData=1
得道一个数,正好是结果
liuto
2001-06-01
打赏
举报
回复
呵呵,废话,最后当然是操作符。sorry
liuto
2001-06-01
打赏
举报
回复
你还要保证最后是操作符
Kevin_qing
2001-06-01
打赏
举报
回复
新办法~~~~
考察错误的表达式:
a+
原因在data 只有1个 ,不够+ opt 2 的需求
所以可以这么做
从左往右扫描表达式。
nValideData=0;
while(1)
{
if(in is data )
{
nValideData++;
}
else
{
nValideData-=opt_req[in];//(该操作需要的操作数个数)
}
assert(nValideData>0);
}
然后生成的代码就好写了
Kevin_qing
2001-06-01
打赏
举报
回复
但是
ab+!怎么办!!!!!
liuto
2001-06-01
打赏
举报
回复
噢,我看错了,你得方法好象可以。
liuto
2001-06-01
打赏
举报
回复
abc++是对的呀。不能象你那样记数,似乎就得反演。
Kevin_qing
2001-06-01
打赏
举报
回复
我又想了一个:
考察:ab+c+
abc++
其中opt比data少1,并且在每个opt左边的data都>=opt+1
似乎这样就好生成了
一次应该就可以生成完整的
伪代码:
BYTE stack[1024];
int data_count=0;
int opt_count=0;
for(int i=0;i<stack_len;i++)
{
do{
stack[i]=rand();
if(stack[i] is data)
{
data_count++;
break;
}
else
{
if(data_count>opt_count+1)
{
opt_count++;
break;
}
}
}while(1);
}
差不多就可以了吧
liuto
2001-06-01
打赏
举报
回复
比如发现操作数不够就添操作数,操作符不够就添操作符
liuto
2001-06-01
打赏
举报
回复
讨论一下,先乱七八糟填一堆东西到栈里,然后反演,发现错误就改正,这样是不是可行?
20190919-6 四则运算试题生成,结对
本文介绍了一个基于栈和
逆波兰式
转换的四则运算题生成器,支持括号和限定题目数量的输出,避免了重复问题。讨论了算法实现的难点,包括
随机生成
有意义的括号和避免重复表达式的策略。
第一次作业-四则运算题目生成程序
本文分享了一个四则运算题生成器的开发经历,包括需求分析、功能设计、设计实现等多个阶段。作者从零开始,介绍了如何使用C++实现
随机生成
符合特定条件的四则运算题目,以及如何通过
逆波兰式
解决查重问题。
c++生成算式并计算(《构建之法》第一章课后第一题)
本文介绍了一款使用C++实现的计算器,能够自动生成包含括号和小数的随机四则运算算式,并将其转换为
逆波兰式
进行计算。程序将算式及结果分别存储于不同文件。
高级软件工程第二次作业--四则运算生成器
本文介绍了一个能够生成包含真分数的四则运算题目的软件项目。该软件支持
随机生成
题目及答案验证,涵盖加减乘除及带括号的复合运算,通过
逆波兰式
计算结果。
四则运算2
本文介绍了一个升级版的小学四则运算程序,支持整数及真分数运算,能够生成随机长度的算式并利用
逆波兰式
进行计算。文章详细解析了程序的设计思路与实现细节。
数据结构与算法
33,026
社区成员
35,336
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章