热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python能做什么数据分析_【图片】python可以做什么———Web开发,数据分析,人工智能和脚本开发【python学习吧】_百度贴吧...

该楼层疑似违规已被系统折叠隐藏此楼查看此楼今天给大家分享一个程序:600人站一排,每次随机杀一个奇数位的人,后面的人补上空位,

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

今天给大家分享一个程序:

600 人站一排,每次随机杀一个奇数位的人,后面的人补上空位,直到最后一个人时,他是几号?

Python 代码:

def fr(a,b = None):

if b is None:

return a

else:

return float(a) / float(b)

# Uncomment the following line to use fractions

# from fractions import Fraction as fr

def cal_p(m, n):

P = [fr(0)] * (m - n + 1)

for M in range(m - n + 1, m + 1):

P2 = [0] * (M+1)

half = (M + 1) // 2

P.append(fr(0))

for i in range(1, M + 1):

if i % 2 == 0:

P2[i] = fr(i // 2, half) * P[i-1] + fr(half - i//2, half) * P[i]

else:

P2[i] = fr(1, half) + fr(i // 2, half) * P[i-1] + fr(half - i//2 - 1, half) * P[i]

P = P2

return P

import matplotlib.pyplot as plt

def plot_q(M,N):

P = cal_p(M,N)

q = [1.0 - p for p in P[1:]]

plt.figure()

plt.plot(q)

plt.show()

if b is None: return a else: return float(a) / float(b)# Uncomment the following line to use fractions# from fractions import Fraction as fr def cal_p(m, n): P = [fr(0)] * (m - n + 1) for M in range(m - n + 1, m + 1): P2 = [0] * (M+1) half = (M + 1) // 2 P.append(fr(0)) for i in range(1, M + 1): if i % 2 == 0: P2[i] = fr(i // 2, half) * P[i-1] + fr(half - i//2, half) * P[i] else: P2[i] = fr(1, half) + fr(i // 2, half) * P[i-1] + fr(half - i//2 - 1, half) * P[i] P = P2 return Pimport matplotlib.pyplot as plt def plot_q(M,N): P = cal_p(M,N) q = [1.0 - p for p in P[1:]] plt.figure() plt.plot(q) plt.show()

如果考虑存活回合数的期望值的话,由于 N 很大的时候存活概率本身就比较小,最后的确应该是 2 的平均存活回合数比较有优势吧。

解释一下当 N 比较大的时候,为什么随着 N 的奇偶性变化,最后一段的概率忽大忽小呢?

因为我们的 M = 600 是个偶数,当杀奇数人的时候,最后一轮排在最后一个位置的人不会被杀,而杀偶数人时,最后这一轮排在最后一个位置的人可能被杀,而就是这一点点差别导致了差异;杀奇数人时,最后一段很容易成为最后一个人,所以存活概率变大了,在杀 599 人的时候,甚至这是唯一的存活可能性;杀偶数人时,反而是成为倒数第二个人比较划算,所以最后一小段反而概率下降了。



推荐阅读
  • 深入理解Tornado模板系统
    本文详细介绍了Tornado框架中模板系统的使用方法。Tornado自带的轻量级、高效且灵活的模板语言位于tornado.template模块,支持嵌入Python代码片段,帮助开发者快速构建动态网页。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • Python自动化处理:从Word文档提取内容并生成带水印的PDF
    本文介绍如何利用Python实现从特定网站下载Word文档,去除水印并添加自定义水印,最终将文档转换为PDF格式。该方法适用于批量处理和自动化需求。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 深入理解C++中的KMP算法:高效字符串匹配的利器
    本文详细介绍C++中实现KMP算法的方法,探讨其在字符串匹配问题上的优势。通过对比暴力匹配(BF)算法,展示KMP算法如何利用前缀表优化匹配过程,显著提升效率。 ... [详细]
  • 本文探讨了如何在给定整数N的情况下,找到两个不同的整数a和b,使得它们的和最大,并且满足特定的数学条件。 ... [详细]
  • 本文介绍如何使用 Python 提取和替换 .docx 文件中的图片。.docx 文件本质上是压缩文件,通过解压可以访问其中的图片资源。此外,我们还将探讨使用第三方库 docx 的方法来简化这一过程。 ... [详细]
  • 根据最新发布的《互联网人才趋势报告》,尽管大量IT从业者已转向Python开发,但随着人工智能和大数据领域的迅猛发展,仍存在巨大的人才缺口。本文将详细介绍如何使用Python编写一个简单的爬虫程序,并提供完整的代码示例。 ... [详细]
  • 本文介绍如何使用Python进行文本处理,包括分词和生成词云图。通过整合多个文本文件、去除停用词并生成词云图,展示文本数据的可视化分析方法。 ... [详细]
  • Python实现照片磨皮效果
    本文介绍如何使用Python和OpenCV库来实现照片的磨皮效果,使图片更加平滑并提升整体美感。 ... [详细]
  • 本文探讨了如何在 PHP 的 Eloquent ORM 中实现数据表之间的关联查询,并通过具体示例详细解释了如何将关联数据嵌入到查询结果中。这不仅提高了数据查询的效率,还简化了代码逻辑。 ... [详细]
  • 装饰器是一种用于在不修改原函数代码的情况下,动态地添加功能的工具。它允许你在函数执行前后插入额外的逻辑,从而增强或改变函数的行为。 ... [详细]
  • 本文介绍如何使用 Python 获取文件和图片的创建、修改及拍摄日期。通过多种方法,如 PIL 库的 _getexif() 函数和 os 模块的 getmtime() 和 stat() 方法,详细讲解了这些技术的应用场景和注意事项。 ... [详细]
  • 本文详细介绍了Python编程语言的学习路径,涵盖基础语法、常用组件、开发工具、数据库管理、Web服务开发、大数据分析、人工智能、爬虫开发及办公自动化等多个方向。通过系统化的学习计划,帮助初学者快速掌握Python的核心技能。 ... [详细]
  • 本文介绍如何使用 Python 的 Pandas 库中 Series 对象的 round() 方法,对数值进行四舍五入处理。该方法在数据预处理和分析中非常有用。 ... [详细]
author-avatar
战冰_斗雪
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有