c# 索引超出了数组界限,该如何解决

c# 索引超出了数组界限
初学编程,不怎么会。求助,修改。
要做一个公式的计算的窗口,计算概率的,求概率的最大值。
输入:a[6],6个元素之不是1就是0。a[1]对应p[1],p[1]是概率,a[2]对应p[2],a[3]对应p[3],a[4]对应p[4]……,组成概率数组p[6].求其中概率最大的。

公式:c# 索引超出了数组界限,该如何解决
界面:c# 索引超出了数组界限,该如何解决
程序如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace bayes01
{

    public partial class Form1 : Form
    {
        
        int[] nArray = new int[6];//定义一个int型数组  
        public Form1()
        {

            InitializeComponent();
            String str = textBox1.Text;
             char[] ch = str.ToCharArray();//转换成char型来计算  
             //int[] nArray = new int[str.Length];//定义一个int型数组  

             const int ten = 10;   //定义常量  
             for (int i = 0; i < ch.Length; i++)
             {

                 nArray[i] = ch[i] - 48;  //把字符转换成int  
                 for (int j = ch.Length - i - 1; j > 0; j--)
                 {
                     nArray[i] *= ten;
                 }

             }  
            
       }    
        
        
        static double cimi(double p,int m)//连续相乘
        {
            double sum = 1;
            for(int i=0;i<m;i++)
            {
                
                sum *= p;
            }
            return sum;
        }
         private int mishu1(int[] m)//前一项的次幂数
        {
            int i,j;
            for (i = 1; i <= 6; i++)
            {
                for (j = 1; j <= i; j++)
                {
                    if ((nArray[i]) == 0)
                        m[i] += 1;
                }
                for (j = i + 1; j <= 6; j++)
                {
                    if (nArray[i] == 1)
                        m[i] += 1;
                }
            }
            return m[i];