蝴蝶效應(Java版 Python版後期上新)
阿新 • • 發佈:2018-12-11
Problem Description
蝴蝶效應是氣象學家洛倫茲1963年提出來的。其大意為:一隻南美洲亞馬孫河流域熱帶雨林中的蝴蝶,偶爾扇動幾下翅膀,可能在兩週後引起美國德克薩斯引起一場龍捲風。其原因在於:蝴蝶翅膀的運動,導致其身邊的空氣系統發生變化,並引起微弱氣流的產生,而微弱氣流的產生又會引起它四周空氣或其他系統產生相應的變化,由此引起連鎖反應,最終導致其他系統的極大變化。此效應說明,事物發展的結果,對初始條件具有極為敏感的依賴性,初始條件的極小偏差,將會引起結果的極大差異。
我們將問題簡化為方程 f(x) = (a*f(max(0,x-b)) + c*f(max(0,x-d)))%1000000007。
現在給出不同的f(0)和n以及引數a,b,c,d,計算出f(n)。
Input
多組輸入。
對於每組資料,有六個個整數n,f0(1 <= n <= 10000,1 <= f0 <= 10000),a,b,c,d(1 <= a,b,c,d <= 10000)。
Output
對於每組資料輸出f(n)。
Sample Input
1 2 3 4 5 6
Sample Output
16
import java.util.Scanner; public class Main{ static long f[] = new long[10010]; final static long mod = 1000000007; public static void main(String[] args){ Scanner in = new Scanner(System.in); int n,a,b,c,d,i; while(in.hasNext()){ n = in.nextInt(); f[0]=in.nextInt(); a = in .nextInt(); b = in.nextInt(); c = in.nextInt(); d = in.nextInt(); for(i = 1;i <= n;i++ ) { f[i] = (a*f[Math.max(0, i-b)] + c*f[Math.max(0, i-d )])% mod; } System.out.println(f[n]); } } }
Java給我的感覺就是,可以用各種方便好用的方法,方便運算