上述例子基于mcmaster的直线圆柱界面导轨数据: 直线度0.001", 直径公差-0.001". 可见该导轨的圆柱度公差还是有可能达到0.002"。
Tuesday, July 4, 2017
Sunday, July 2, 2017
数据结构与算法--fibonacci的动态规划解法
对比下面这个用一个数组来存储中间变量的方法:以下代码为JAVA:
- /**
- * 自底向上包含"动态规划"思想的解法
- * @param n
- * @return 第n个斐波那契数
- */
- public static int downToTopReslove(int n) {
- if(n == 0) {
- return 0;
- } else if(n == 1 || n == 2) {
- return 1;
- } else {
- int[] fibonacciArray = new int[n+1]; //fibonacciArray[i]表示第i个斐波那契数
- fibonacciArray[0] = 0;
- fibonacciArray[1] = 1;
- fibonacciArray[2] = 1;
- for(int i=3;i<=n;i++) { //注意由于fibonacciArray[0]表示第0个元素,这里是i<=n,而不是i<n
- fibonacciArray[i] = fibonacciArray[i-1] + fibonacciArray[i-2];
- }
- return fibonacciArray[fibonacciArray.length-1];
- }
- }
第一个算法只用了两个中间变量来存储中间值,每次值都会有变化,而第二个方法则是每个中间值都被存储在了对应的数组元素里。
上述两种算法都体现了动态规划的思想。
Subscribe to:
Posts (Atom)