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].求其中概率最大的。
公式:
界面:
程序如下:
初学编程,不怎么会。求助,修改。
要做一个公式的计算的窗口,计算概率的,求概率的最大值。
输入: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].求其中概率最大的。
公式:
界面:
程序如下:
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];