我更惨 递推公式写错了 不知道哪错了 for (int i = 1; i < m; i++) { res[i][1] = res[i - 1][1] * (1 - a) + res[i - 1][2] * (1 - a) * b + res[i - 1][3] * (1 - a) * b * b + res[i - 1][4] * (1 - a) * b * b * b; res[i][2] = res[i - 1][1] * a + res[i - 1][2] * (1 - a) * (1-b) + res[i - 1][2] * a * b + res[i - 1][3] * a * b * b + res[i - 1][3] * (1- a) * b *(1-b) * 2 + res[i - 1][4] * b * b * (1-b)*3; res[i][3] = res[i - 1][2] * a * (1 - b) + res[i - 1][3] * a * b * (1-b) * 2 + res[i - 1][3] * (1-a) * (1-b) * (1-b) + res[i - 1][4] * b * b * (1-b) * 3; res[i][4] = res[i - 1][4] * (1 - b) * (1 - b) * (1 - b) + res[i][3] * a; result += res[i][1]; }