可视化计算raptorWord格式.docx
《可视化计算raptorWord格式.docx》由会员分享,可在线阅读,更多相关《可视化计算raptorWord格式.docx(9页珍藏版)》请在冰豆网上搜索。
![可视化计算raptorWord格式.docx](https://file1.bdocx.com/fileroot1/2022-10/27/a337a18c-70cd-4998-be11-e5d80938f3ea/a337a18c-70cd-4998-be11-e5d80938f3ea1.gif)
解题思路
先构图的顶点,随即生成边,构成树,各个顶点中的数字随机生成,这样就完成输入问题。
再用动态规划寻找最大的路径,最后再运用可视化的特点,把选择的过程呈现给看程序的人。
1.首先是构图,出于美观性的考虑,我将数字三角形的可行层数控制为1-6层。
由于raptor没有编辑数组,所以我用两种方式为顶点编号:
1,(i,j)来表示第i行第j个数。
2,用m表示,从上到下,从左到右的第m个点。
之后就是,计算点的坐标,找出坐标的规律,并适当的纪录。
2.动态规划,主要根据,状态转移方程:
f[i,j]=max{f[i-1,j],f[i-1,j-1]}+c[i,j]其中,f[i,j]表示到(i,j)点的最大累加和,c[i,j]表示第(i,j)点的值。
3.显示用到递归的解法,根据之前纪录的“父节点”来搜索路径。
算法实现
第一个子图composition就是构图,用来画二叉树,i控制行数,j控制列数,二重循环来画圆和线。
注意点:
一,圆的大小应该适应画布和层数,所以我令k=画布高/层数,而用k/4作为半径画圆。
二,“线不能将圆戳破”即线的出发点不能是圆心,这里,我将上层圆的圆心与它的两个子圆的圆心连线的夹角令为60度,再根据圆中直角三角形的关系,算出对应圆周上的点,作为出发点。
三,弄清一个循环中该做什么,结论是:
画一个圆和两条线,这里要注意判断一下是否是最后一层,最后一层不需要画线。
dp子图是用来完成动态规划算法的,这个算法只要知道状态转移方程就比较好实现,需要注意的是边界的控制,所以需要附初值。
还有就是,我每做一步用root数组纪录一下该点的“父亲”,以便之后查找。
maxchoose子程序用来比较大小,并返回一个o,帮助确定是“左”还是“右”被选了。
showresult和findroot就是用递归来回溯寻找自己“父节点的过程”
回顾与思考
次程序的缺点,就是编译过后已然极其的慢,但笔者没有找到“裁枝”的限制条件,希望看过此程序的读者能够发现。
参考文献:
运行结果
Main子图
composition子图
trigger子图
DP子图
Maxchoose子程序
Showresult子图
输入和输出的参数有必要加以说明。
Findroot子程序
出师表
两汉:
诸葛亮
先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。
然侍卫之臣不懈于内,忠志之士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。
诚宜开张圣听,以光先帝遗德,恢弘志士之气,不宜妄自菲薄,引喻失义,以塞忠谏之路也。
宫中府中,俱为一体;
陟罚臧否,不宜异同。
若有作奸犯科及为忠善者,宜付有司论其刑赏,以昭陛下平明之理;
不宜偏私,使内外异法也。
侍中、侍郎郭攸之、费祎、董允等,此皆良实,志虑忠纯,是以先帝简拔以遗陛下:
愚以为宫中之事,事无大小,悉以咨之,然后施行,必能裨补阙漏,有所广益。
将军向宠,性行淑均,晓畅军事,试用于昔日,先帝称之曰“能”,是以众议举宠为督:
愚以为营中之事,悉以咨之,必能使行阵和睦,优劣得所。
亲贤臣,远小人,此先汉所以兴隆也;
亲小人,远贤臣,此后汉所以倾颓也。
先帝在时,每与臣论此事,未尝不叹息痛恨于桓、灵也。
侍中、尚书、长史、参军,此悉贞良死节之臣,愿陛下亲之、信之,则汉室之隆,可计日而待也。
臣本布衣,躬耕于南阳,苟全性命于乱世,不求闻达于诸侯。
先帝不以臣卑鄙,猥自枉屈,三顾臣于草庐之中,咨臣以当世之事,由是感激,遂许先帝以驱驰。
后值倾覆,受任于败军之际,奉命于危难之间,尔来二十有一年矣。
先帝知臣谨慎,故临崩寄臣以大事也。
受命以来,夙夜忧叹,恐托付不效,以伤先帝之明;
故五月渡泸,深入不毛。
今南方已定,兵甲已足,当奖率三军,北定中原,庶竭驽钝,攘除奸凶,兴复汉室,还于旧都。
此臣所以报先帝而忠陛下之职分也。
至于斟酌损益,进尽忠言,则攸之、祎、允之任也。
愿陛下托臣以讨贼兴复之效,不效,则治臣之罪,以告先帝之灵。
若无兴德之言,则责攸之、祎、允等之慢,以彰其咎;
陛下亦宜自谋,以咨诹善道,察纳雅言,深追先帝遗诏。
臣不胜受恩感激。
今当远离,临表涕零,不知所言。