数学の基本理論


数学の基本理論
境遇
発生する可能性のあるイベントやイベントでは、この数を偽数で表します.
完全ナビゲーションの整数アルゴリズム.
  • シーケンス:異なるn個の要素からr個を繰り返し選択せず、順番に並べられた個数(npr=n!/(n-r)!)
  • の組み合わせ:異なるn個の要素からr個を繰り返し選択せず、順序を問わずリストする(nCr=n!/(n-r)!r!)
  • 整列
    方法文の使用
    欠点:rの数と同じfor文なので、rの数が大きいほど実現しにくくなります.
    let arr = ['a','b','c'];
    // 첫번째 [i,0,0]
    for(let i=0; i<arr.length; i++){
    	// [i,j,0]
    	for(let j=0; j<arr.length; j++){
        	if(i===j) continue;
    		// [i,j,k]
    		for(let k=0; k<arr.length; k++){
    			if(i===k) continue;
                if(j===k) continue;
                console.log(arr[i],arr[j],arr[k])
    		}
        }
    }
    方法復帰する
    クエリーの問題を解決できます.
    let input = ["a", "b", "c"];
    function permutation(arr, s, r) {
      if (s === r) {
        count++;
        console.log(arr.join(" "));
        return;
      }
      for (let i = s; i < arr.length; i++) {
        [arr[s], arr[i]] = [arr[i], arr[s]];
        permutation(arr, s + 1, r);
        [arr[s], arr[i]] = [arr[i], arr[s]];
      }
    }
    permutation(input, 0, 2);
    コンポジット
    方法文の使用
    順序と同様にrの数for文を用いるのでpass
    方法復帰する
    function solution(n,r){
        let tmp = Array.from({length:r},()=>0)
        let answer = []
        // l은 뽑은 개수를 나타냄 
        function DFS(l,s){
            if(l===r){
                answer.push(tmp.slice())
            }else{
                for(let i=s; i<=n;i++){
                    tmp[l]=i
                    DFS(l+1,i+1)
                }
            }
        }
        DFS(0,1)
    }
    solution(4,2)
    てんかしき
    点火式とは、数列に隣接する2つの項目の関係を指します.
  • 等差数列:F(n)=F(n-1)+a(固定数)
  • 等比数列:F(n)=F(n-1)*a
  • 工場:F(n)=F(n-1)*n
  • フィボナッチ数列:F(n)=F(n-1)+F(n-2)
  • 等差数列
    方法文の使用
    // s : 시작값, a : 고정값
    function test(s,a,n){
        let acc = 0
        for(let i=0;i<n;i++){
            if(i===1){
                acc+=s
            }else{
                acc+=a
            }
        }
        return acc
    }
    test(3,2,5)
    方法再帰の使用
    function test(s,a,n){
        if(n===1) return s
        return test(s,a,n-1) + a
    }
    test(3,2,5)
    // n=5 : 9 + 2
    // n=4 : 7 + 2
    // n=3 : 5 + 2
    // n=2 : 3 + 2
    // n=1 : 3
    等比数列
    方法文の使用
    // s : 시작값, a : 고정값
    function test(s,a,n){
        let acc = 0
        for(let i=0;i<n;i++){
            if(i===1){
                acc*=s
            }else{
                acc*=a
            }
        }
        return acc
    }
    test(3,2,5)
    方法再帰の使用
    function test(s,a,n){
        if(n===1) return s
        return test(s,a,n-1) * a
    }
    test(3,2,5)
    実際の
    方法復帰する
    function test(n){
        if(n===1) return 1
        return test(n-1) * n
    }
    test(5)
    フィボナッチ
    前項と前項の値は現在の値です.
    f(5) : f(4) + f(3)
    f(4) : f(3) + f(2)
    方法復帰する
    function test(n){
        if(n===0 || n===1) return n 
        return test(n-1) + test(n-2)
    }
    test(5)