Pregunta 60 de la entrevista de oferta de Sword Finger: El número de n dados

Para esta pregunta, la idea que se puede pensar es sumar directamente y encontrar el número de veces, el método más directo y problemático.

Luego miré la respuesta directamente. La idea de la respuesta es usar una matriz para almacenar la cantidad de sumas correspondientes a cada dado, y luego, la próxima vez, use f (n-1) + f (n-2) + f (n-3) + f (n-4) + f (n-5) + f (n-6) para obtener el valor más los dados actuales

 

 

Código escrito por mí mismo

    public double[] dicesProbability(int n) {
        
        int[] pre_sum = new int[7];
        int[] la_sum = null;
        double total = 1;
        for(int count = 0;count<n;count++){
            total*=6;
        }
        pre_sum[0] = 0;
        pre_sum[1] = 1;
        pre_sum[2] = 1;
        pre_sum[3] = 1;
        pre_sum[4] = 1;
        pre_sum[5] = 1;
        pre_sum[6] = 1;
        la_sum = pre_sum;
        for(int count = 2; count<=n;count++){
            pre_sum = la_sum;
            la_sum = new int[count*6 + 1];
            for(int inner_count = 0;inner_count < la_sum.length;inner_count++){
                for(int count_6 = 1;count_6<=6;count_6++){
                    if(inner_count - count_6>=0&&inner_count - count_6<pre_sum.length){
                        la_sum[inner_count] += pre_sum[inner_count - count_6];
                    }
                }
            }



        }
        double[] la_rate = new double[la_sum.length];
        int num_count = 0;
        for(int count = 0;count<la_sum.length;count++){
            la_rate[count] = la_sum[count]/total;
            if(la_sum[count]>0){
                num_count++;
            }
        }
        double[] la_rate_new = new double[num_count];
        int count_out = 0;
        for(int count = 0;count<la_sum.length;count++){
            if(la_sum[count]>0){
                la_rate_new[count_out++] = la_rate[count];
            }
        }
        return la_rate_new;
    }

 

Supongo que te gusta

Origin blog.csdn.net/qq_40473204/article/details/115351383
Recomendado
Clasificación