-11

行と列を指定して、パスカルの三角形のその位置の値を計算する関数を作成しようとしています。

例:

val = GetPasVal(3, 2); // returns 2

ここでは、行 3、列 2 を指定しています。これはご覧のとおりです。

          1
         1  1
       1   2   1

...2 のはずです。

4

5 に答える 5

8

パスカルの三角形には、二項係数C(n,k) が含まれます。非常に便利な再帰式があります

C(n, k) = C(n-1, k-1) + C(n-1, k)

この式を使用して、二項係数を計算できます。

于 2013-03-24T17:50:17.880 に答える
3

アルメンの方程式を使用すると、パスカルの三角形を実装するための再帰コードは次のようになります。

using System;
using System.Collections.Generic;

public class Program
{
  public void Main()
   {        
    for(int i =0 ; i<5;i++)
    {
        int sum = 1;
        Console.WriteLine();
        for(int j =0 ; j<=i;j++)
        {
            Console.Write(pascal(i,j));
            //Console.Write(sum); //print without recursion
            sum= sum *(i-j) / (j + 1);              
        }
    }           
}

  public int pascal(int x, int y)
  {
    if((x+1)==1 || (y+1)==1 || x==y)
    {
        return 1;
    }
    else
    {
        return pascal(x-1,y-1)+ pascal(x-1,y);
    }
  }
}
于 2014-02-26T11:56:45.310 に答える
0
for row in range(10):
print('{: ^45}'.format(' '.join(str(pascal(row, col)) for col in range(row+1))))

上記のコードを使用してパスカル三角形を出力し、それによってコードを変更します。最初の 10 個は次のようになります。

                  1
                 1 1                     
                1 2 1                    
               1 3 3 1                   
              1 4 6 4 1                  
            1 5 10 10 5 1                
          1 6 15 20 15 6 1               
         1 7 21 35 35 21 7 1             
       1 8 28 56 70 56 28 8 1            
     1 9 36 84 126 126 84 36 9 1         
于 2016-11-16T03:11:11.693 に答える