zoukankan      html  css  js  c++  java
  • 剑指offer-Q60 n个骰子的点数

    python版本代码

    g_maxValue = 6 # 单个骰子最大的点数
    
    def PrintProbability(number):
        '''
        :param number: 骰子的个数 
        :return: 打印概率分布,返回表示概率分布的数组
        '''
        if number < 1: # 骰子个数小于1
            return
        maxSum  = number * g_maxValue 
        pProbabilities = [0 for i in range(maxSum - number + 1)]
        Probability(number, pProbabilities)
    
        total = pow(g_maxValue, number)
        for i in range(number , maxSum + 1):
            ratio = pProbabilities[i-number]/total
            print(i, ratio)
        return pProbabilities
    
    def Probability(number, pProbabilities):
        '''
        :param number: 骰子个数 
        :param pProbabilities:概率分布(计算频数)
        :return: None
        '''
        for i in range(1, g_maxValue+1):
            _Probability(number, number, i, pProbabilities)
    
    def _Probability(original, current, sum, pProbabilities):
        '''
        :param original: 等于骰子的个数,表示的意义是最小的点数之和,作为pProbabilities定位索引的一个offset 
        :param current: 还剩下的未考虑的骰子的个数
        :param sum: 考虑过的骰子的点数之和
        :param pProbabilities: 概率分布(计算频数)
        :return: None
        '''
        if current == 1:
            pProbabilities[sum - original]+=1
        else:
            for i in range(1, g_maxValue+1):
                _Probability(original, current - 1, i+sum, pProbabilities)
    
    PrintProbability(1)
    
  • 相关阅读:
    [PHP] 自定义错误处理
    [PHP] url的pathinfo模式加载不同控制器的实现
    [PHP] 自动加载的实现
    [javaSE] java获取文件列表
    [PHP] PHP请求Socket接口测试
    [PHP] java读取PHP接口数据
    [PHP] 读取大文件并显示
    [javaSE] java上传图片给PHP
    HDUOJ----Eddy's research I
    HDUOJ--8球胜负
  • 原文地址:https://www.cnblogs.com/ZeroTensor/p/10831319.html
Copyright © 2011-2022 走看看