- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!!!アルゴリズム C# 漸化式
{{category アルゴリズム}}
{{amazon 4774193739}}
!!コード
class Combination
{
/// <summary>
/// 漸化式 (nCr) の計算
/// </summary>
/// <param name="n"></param>
/// <param name="r"></param>
/// <returns></returns>
public static long Combi(int n, int r)
{
long p = 1;
for (int i = 1; i <= r; i++)
{
p = p * (n - i + 1) / i;
}
return p;
}
public static void SampleCombi()
{
for (int n = 0; n <= 5; n++)
{
for (int r = 0; r <= n; r++)
{
Console.Write($"{n}C{r} = {Combi(n, r)} ");
}
Console.Write("\n");
}
}
/// <summary>
/// Hornerの方法
/// </summary>
/// <param name="x"></param>
/// <param name="a"></param>
/// <param name="n"></param>
/// <returns></returns>
public static double Horner(double x, double[] a, int n)
{
double p = a[n];
for (int i=n-1; i>=0; i--)
{
p = p * x + a[i];
}
return p;
}
public static void SampleHorner()
{
double[] a = { 1, 2, 3, 4, 5 };
for(double x=1; x<=5; x++)
{
Console.WriteLine($"fn({x:#0.000}) = {Horner(x,a,4):#0.000}");
}
}
}
!!結果
0C0 = 1
1C0 = 1 1C1 = 1
2C0 = 1 2C1 = 2 2C2 = 1
3C0 = 1 3C1 = 3 3C2 = 3 3C3 = 1
4C0 = 1 4C1 = 4 4C2 = 6 4C3 = 4 4C4 = 1
5C0 = 1 5C1 = 5 5C2 = 10 5C3 = 10 5C4 = 5 5C5 = 1
fn(1.000) = 15.000
fn(2.000) = 129.000
fn(3.000) = 547.000
fn(4.000) = 1593.000
fn(5.000) = 3711.000