我的CSDN(超新手版) NO.2

第二次实验:理解浮点数运算的误差+chapter 1

一、实验目的:

(1)理解组合数定义式的化简。

(2)理解运算符/和//的区别,理解运算符//的原理。

(3)理解浮点数运算的误差和可能带来的问题。

(4)熟悉函数定义与使用。

(5)熟悉循环结构。

二、实验内容:

阅读并适当增加必要的代码来调试下面的代码,分析代码功能,发现并解决代码中的错误。

# //运算符 源代码

# 提示:这段代码试图计算组合数Ci n,但是由于浮点数除法时精度问题导致结果错误

# C2 5 = 10,但是以下代码计算C2 5的结果是8(cni(5, 2)),为什么?

def cni(n, i):

    minNI = min(i, n-i)

    result = 1

    for j in range(0, minNI):

        result = result * (n-j) // (minNI-j)

return result

回答:

问题出在使用整数除法//,在计算过程中,当执行result * (n-j) // (minNI-j)时,由于整数除法会直接舍去小数部分,可能导致结果不准确。

以计算  cni(5,2)为例,当 j = 0 时,result = 5 // 2 = 2(这里应该是 5/2 = 2.5,但整数除法直接得到 2)。接着,当 j = 1 时,result = result * (n-j) // (minNI-j) = 2 * 4 // 1 = 8。而正确的计算过程应该是 5 * 4/2 = 10

解决:

代码如下:

def cni(n, i):
    minNI = min(i, n - i)
    result = 1
    for j in range(0, minNI):
        result = result * (n - j) / (minNI - j)
    return result
cni(5,2)

结果为10.0

### 回答1: modbus协议中文.pdf是一份介绍modbus协议的中文文档,可以在CSDN上找到。modbus是一种常用的串行通信协议,用于在不同设备之间进行数据交互。这份文档详细介绍了modbus协议的工作原理、通信格式、数据类型等内容,可以帮助开发者理解和应用modbus协议。 modbus协议采用主从结构,其中一个设备充当主机,负责发送指令和获取数据;其他设备作为从机,接收主机的指令并返回数据。主从设备之间通过串行通信线路进行数据交换,主机通过指令控制从机的读写操作,从机则根据指令进行响应。 该文档中还介绍了modbus协议的通信格式。通信帧包括起始码、从机地址、功能码、数据区和校验码等字段。通过这些字段,设备可以确定通信的起始和终止位置,并进行数据的传输和校验。 此外,文档还详细介绍了modbus协议支持的数据类型,包括线圈状态、输入状态、保持寄存器和输入寄存器。开发者可以根据自己的需求选择合适的数据类型来进行数据的读写操作。 总之,modbus协议中文.pdf csdn是一份介绍modbus协议的中文文档,通过阅读该文档,开发者可以更深入地了解modbus协议的原理和应用,从而更好地进行相关开发工作。 ### 回答2: modbus是一种通信协议,用于在工业自动化系统中,将各种设备与计算机或控制器连接起来。modbus协议的中文.pdf csdn是指在CSDN论坛上,有人分享了modbus协议的中文翻译本。 首先,modbus协议是由Modicon公司于1979年开发的,是一种开放的通信协议。它包括了一系列的通信规则和格式,用于数据在不同设备之间的传输和控制。 modbus协议的中文.pdf csdn是指在CSDN论坛上有人上传并分享了modbus协议的中文翻译本。这个文件可能是一个PDF格式的文件,它将modbus协议的英文翻译成了中文,方便那些不懂英文的用户理解和使用该协议。 这个文件可以对于在工业自动化领域工作的人们非常有用。通过阅读这个中文翻译的modbus协议,他们可以更好地理解和应用这个通信协议。而CSDN论坛作为一个技术交流平台,提供了各种技术相关的资源供人们学习和分享。 总之,modbus协议的中文.pdf csdn是一个在CSDN论坛上分享的modbus协议的中文翻译本文件,它为工业自动化领域的人们提供了一个便捷的学习和应用modbus协议的工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值