首页 > 移动平台 > 详细

移动后存活概率

时间:2020-08-11 14:16:02      阅读:61      评论:0      收藏:0      [点我收藏+]

技术分享图片

问题见图片

def how_likely_alive(size, startx, starty, n):
    sum_probability = 4 ** n         # 所有可能的移动结果数
    start_point = [(startx, starty)] # 定义起始位置坐标

    while n > 0:
        end_point = []         # 定义空列表,存放移动后还存活着的坐标
        for (x, y) in start_point:
            if 0 <= x + 1 <= size:  # 前移,并存活
                end_point.append((x + 1, y))
            if 0 <= x - 1 <= size:  # 后移,并存活
                end_point.append((x - 1, y))
            if 0 <= y + 1 <= size:  # 上移,并存活
                end_point.append((x, y + 1))
            if 0 <= y - 1 <= size:  # 下移,并存活
                end_point.append((x, y - 1))
        n -= 1              # 移动后,步数n-1
        start_point = end_point.copy()# 移动后更新可能的起始坐标点
    alive_number = len(end_point)    
    alive_probability = alive_number / sum_probability
    return alive_probability

 

移动后存活概率

原文:https://www.cnblogs.com/fansirs/p/13474782.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!