打印杨辉三角

打印杨辉三角_第1张图片

这个公式,不好算,我觉得还是杨辉三角算起来方便:c#代码如下:

   double 打印杨辉三角(int n)//n必须是偶数,展开项是n+1,中间项是n/2,此处返回中间项的概率202306131722
        {
            //for (int i = 0; i < n; i++)
            //{
            //    //这种方法直接算,使用阶乘,方法一
            //}

            //迭代法也比较好,方法二
            int a = 1;
            List temp上 = new List();
            if (a == 1) { temp上.Add(1); temp上.Add(1); }//a==1,是两项
          
            do {//用杨辉三角法求解下一展开项系数
                a++;//a,是a+1项
                int[] hello = new int[a+1];hello[0] = 1;hello[a] = 1;
                for (int i=0;i< a-1;i++)//更新temp上,temp下
                {
                    int 肩上两项 = temp上[i] + temp上[i + 1];
                    hello[i+1]= 肩上两项;

                }

                temp上.Clear();
                temp上= hello.ToList();
                
            } while (a < n);
           
            List temp下 = new List();
            int total = 0;
            for (int i = 0; i < temp上.Count; i++)
            {
                total = total + temp上[i];//求所有项的和
            }
            for (int i = 0; i < temp上.Count; i++)//n=10时,这里有11项
            {
                temp下.Add(temp上[i] / (total * 1.0));//求每一项的概率
            }
            //中间项自然就是temp下[10/2];即第六项
            return temp下[n / 2];//返回中间项概率
        }

n=10如下:

打印杨辉三角_第2张图片

打印杨辉三角_第3张图片

可以和前面的高斯函数再对比:

打印杨辉三角_第4张图片

 这样就方便多了。

 

 

 

你可能感兴趣的:(算法)