1、将 statistics 目录复制到 my_statistics 中,并修改 my_statistics/statistics.go 文件,以计算另外两个统计指标:众数和标准差。当用户点击“计算”按钮时,输出应包含众数和标准差的计算结果。
此操作需要向 statistics 结构体添加几个新项,并添加两个新函数来执行计算。该方案大约需要 40 行额外代码,使用了内置的 append() 函数向切片添加数字。
标准差函数较易编写,只需使用 math 包中的一些函数,代码少于十行,使用公式
σ = √(∑(x - x̅)² / (n - 1))
其中:
-
x是每个数字 -
x̅是均值 -
n是数字的数量
众数是出现频率最高的数字,如果有两个或更多数字出现频率相同且最高,则它们都是众数;如果所有数字出现频率相同,则没有众数。
众数的计算比标准差更复杂,大约需要 20 行代码。
2、使用标准公式 x = [-b ± √(b² - 4ac)] / 2a 创建一个用于计算二次方程解的 Web 应用程序。使用复数,以便即使判别式(b² - 4ac 部分)为负时也能找到解。首先,让数学计算正常工作。然后,修改应用程序以产生更智能的输出,例如将“+ -”替换为“-”,将“1x”替换为“x”,抑制零分量,当虚部近似为零时将解格式化为浮点数。
初始应用开发的代码约 120 行,此版本通过使用 EqualFloat() 函数,在两个解近似相等时能只输出一个解。
之后进行改进的代码约 160 行,在输出格式上更智能,它使用了 math/cmplx 包的一些函数(如 cmplx.IsNaN() )和更高级的字符串格式化。
3、上一节的 m3u2pls 程序能很好地将 .m3u 播放列表文件转换为 .pls 格式。但如果该程序还能进行反向转换,即从 .pls 格式转换为 .m3u 格式,会更实用。对于这个练习,将 m3u2pls 目录复制到(例如)my_playlist 中,并创建一个名为 playlist 的新程序,使其具备所需功能。其使用信息应为 usage: playlist 。如果该程序使用 .m3u 文件调用,它应与 m3u2pls 程序的功能完全相同:将文件数据以 .pls 格式写入控制台。但如果使用 .pls 文件调用该程序,它应将文件数据以 .m3u 格式写入控制台。新功能大约需要 50 行新代码。
任务要求
- 将
m3u2pls目录复制到my_playlist目录。 - 创建一个名为
playlist的新程序,要求: - 能根据输入文件格式(
.m3u或.pls)进行相应转换。 - 将转换结果输出到控制台。
- 使用信息为:
usage: playlist <file.[pls|m3u]> - 新功能大约需要 50 行新代码 。

最低0.47元/天 解锁文章
3357

被折叠的 条评论
为什么被折叠?



