1. 程式人生 > >蝴蝶效應(Java版 Python版後期上新)

蝴蝶效應(Java版 Python版後期上新)

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給我的感覺就是,可以用各種方便好用的方法,方便運算