Way,Method,Algorithm  
算法的世界
日历
<2006年12月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456
统计
  • 随笔 - 5
  • 文章 - 4
  • 评论 - 10
  • 引用 - 0

导航

常用链接

留言簿(2)

随笔分类

随笔档案

文章分类

文章档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜

 
Step1:最后一次肯定是两个数进行+、-、*、/的遍历(-和/要注意先后顺序)
Step2:最后两个数字从哪来?
如果是第一次调用,任取三个数全做第一种运算(程序中为“+”)得到一个结果;如果不是第一次调用,根据传入的两个数(可能由Step7传入),另外再任取一个数做第一种运算;把这个结果和四个数中剩余的那个数,有了这两个数,转入Step1;
如果没有得到结果转入step3;
Step3:到此,说明上述step1中的参与运算的数字不对,考虑到step1中的两个运算数,一个是组合运算数和另一个是单一数参与,所以修改组合运算数。
Step4:如何修改组合运算数?
固定Step2中三个数的前两个数,这两个数仍然只做Step2中它们所做的运算,通过把这个运算结果和
4.1.a) Step2中三个数中剩下的那个数根据step1得到一个结果
(或者)
4.1.b) Step2中没有选定的那个数根据step1得到一个结果
到此,达到了修改参与运算数的目的。
4.2) 有了这个结果和四个数中剩余的另外一个数又可以转到Step1;
如果不能得到结果,转入step5:
(注意:我们到此也就发现了算法的重复计算,比如之前运算过((4+5)+7)+6),现在还有可能要运算(((4+5)+6)+7))
Step5:到此,说明除了Step4中固定的两个数外,剩下的两个数不能作为个体参与运算,
于是:
5.1) 剩余的两个数做step1,得到一个结果
5.2) 把Step5.1中的这个结果和Step4中固定的两个数的运算结果做Step1;
如果不能得到结果,转入step6;
Step6:到此,说明前两个数固定的数不能只用Step4中的运算方法运算得到,
于是:对固定的两个数用Step1;将计算结果转到Step4;
如果没有得到结果转入step7;
Step7: 到此,说明Step4中固定的两个数字有误,固定Step4中的第一个数字,选取不是Step4中固定的另外两个数根据Step1,转入Step2;
假设圆心角为O,圆弧的起点为A,转角为alpha,A点的切向为tangA,
我的处理步骤是:
Step1:求向量OA并单位化之
Step2:假设旋转点后新点的坐标为C,过C向OA作垂线,垂足为B,求出向量OB
Step3:单位化tangA,秋初向量BA
Step4:OB+BA即为所求

不知道是否有其他更好的方法?
 
Copyright © Whale Powered by: 博客园 模板提供:沪江博客