Skip to Main Content
程序设计导论:Python语言实践
book

程序设计导论:Python语言实践

by 罗伯特 塞奇威克, 凯文 韦恩, 罗伯特 唐德罗
August 2021
Intermediate to advanced content levelIntermediate to advanced
350 pages
13h 15m
Chinese
Pearson
Content preview from 程序设计导论:Python语言实践

2.1.8 创新习题

22. 生日问题(Birthday problem)。编写一个使用适当函数的程序,以研究生日问题(具体请参见1.4节习题第35题)。

23. 欧拉函数(Euler's totient function)。欧拉函数是数论中的一个十分重要的函数:φn)定义为少于或等于n的数中与n互质(即与n之间除1以外没有其他的公因子)的正整数的数目。请编写一个函数,实现如下功能:接收一个整数参数n,返回φn)。可按如下步骤编写全局代码:从命令行接收一个整型的参数,调用函数,然后输出结果。

24. 调和数(Harmonic number)。请编写一个程序harmonic.py,实现如下功能:定义三个函数harmonic()、harmonicSmall()和harmonicLarge(),计算调和数。harmonicSmall()函数仅仅计算累计和(参见程序2.1.1);harmonicLarge()函数使用近似公式:Hn=logen)+γ+1(2n)-1/(12n2)+1/(120n4)(其中,数值γ = 0.577215664901532,称为欧拉常数);对于harmonic()函数,如果n < 100,则调用harmonicSmall(),否则调用harmonicLarge()。

25. 高斯随机值(Gaussian random value)。请编写一个程序,尝试运行如下函数,函数通过高斯分布生成随机变量,函数基于在单位圆中产生一个随机点的算法,并使用Box-Muller公式(参见程序1.2.24)的一种形式。

程序带一个命令行参数n,产生n个随机数值,使用一个包含20个整数的数组统计位于区间i * .05到(i + 1)* .05(i从0到19)中随机数的数目。然后使用stddraw模块绘制这些值,将绘制的结果与一般的钟型曲线相比较。注意:这种方法比1.2节习题第24题中的方法更快更准确。虽然包括一重循环,但循环的次数平均只有4/π(约为1.273)次。这就降低了对先验函数调用的整体预期数目。 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Go程序设计语言

Go程序设计语言

艾伦A. A.多诺万, 布莱恩W. 柯尼汉
C++语言导学(原书第2版)

C++语言导学(原书第2版)

本贾尼 斯特劳斯特鲁普
Go语言编程

Go语言编程

威廉·肯尼迪

Publisher Resources

ISBN: 9787111549246