组合数计算出现浮点误差的问题python
#首先组合数公式C(n,m)可以简单化简,例如C(8,5)=C(8,3)=(8*7*6)/(3*2*1),m或n-m为几,分式上下就有几
#个数。def cni(n,i):#原函数minNI = min (i,n-i)#C(8,5)->C(8,3),减少下面循环次数result = 1for j in range(0,minNI):print('(',result,'*',n -j,')/', minNI-j) #调试result =result*(n-j)/(minNI-j) #从最大项开始累乘return resultdef cni1(n,i):#改正后minNI=min(i,n-i)result = 1for j in range(1, minNI+1):print('(',result,'*',n -minNI+j,')/', j)#从最小项开始累乘result = (result * (n -minNI+j)) /j#为了保证能够整除,先进行乘法后除return resultprint('原函数:')
print(cni(8,5),end='\n\n')
print('修改后:')
print(cni1(8,5))output-----------------------------------------
原函数:
( 1 * 8 )/ 3
( 2.6666666666666665 * 7 )/ 2
( 9.333333333333332 * 6 )/ 1
55.99999999999999修改后:
( 1 * 6 )/ 1
( 6.0 * 7 )/ 2
( 21.0 * 8 )/ 3
56.0
组合数计算出现浮点误差的问题python相关推荐
- FlatNCE:小批次对比学习效果差的原因竟是浮点误差?
©PaperWeekly 原创 · 作者 | 苏剑林 单位 | 追一科技 研究方向 | NLP.神经网络 自 SimCLR [1] 在视觉无监督学习大放异彩以来,对比学习逐渐在 CV 乃至 NLP 中 ...
- python mse_python 计算平均平方误差(MSE)的实例
我们要编程计算所选直线的平均平方误差(MSE), 即数据集中每个点到直线的Y方向距离的平方的平均数,表达式如下: MSE=1n∑i=1n(yi−mxi−b)2 最初麻烦的写法# TODO 实现以下函数 ...
- oracle最小精度,【整理+原创】Oracle的计算精度与误差
也不算总结帖,至多算个小结帖 由近期看到的帖子想到的,本主题只讨论数字 1.Oracle的计算精度是多少? Oracle的数字精度最多是38位,计算精度当然也就这么多了,否则如何表示计算结果?呵呵 O ...
- python科学计算基础教程pdf下载-用Python做科学计算 高清晰PDF
用Python做科学计算一书介绍如何用Python开发科学计算的应用程序,除了介绍数值计算之外,我们还将着重介绍如何制作交互式的2D.3D图像:如何设计精巧的程序界面:如何和C语言所编写的高速计算程序 ...
- 计算AUC 95%的置信区间,python实现
计算AUC 95%的置信区间,python实现 代码 def bootstrap_auc(clf, X_train, y_train, X_test, y_test, nsamples=1000):a ...
- 纪中集训2020.02.05【NOIP提高组】模拟B 组总结反思——【佛山市选2010】组合数计算,生成字符串 PPMM...
目录 JZOJ2290. [佛山市选2010]组合数计算 比赛时 之后 JZOJ2291. [佛山市选2010]生成字符串 比赛时 之后 JZOJ2292. PPMM 比赛时 之后 JZOJ2290. ...
- 输入在一行中给出两个正整数m和n(m≤n),以空格分隔。按照格式“result = 组合数计算结果”输出。题目保证结果在double类型范围内。建议定义和调用函数fact(n)计算n!
本题要求编写程序,根据公式Cnm=m!(n−m)!n!算出从n个不同元素中取出m个元素(m≤n)的组合数. 建议定义和调用函数fact(n)计算n!,其中n的类型是int,函数类型是 ...
- 组合数计算的几种方法
组合数计算的几种方法 方法一.公式法(此方法适合n和m都很小时使用) 公式:C(n,m)=C(n-1,m)+C(n-1,m-1) 我们在进行计算时可以采用动态规划的方法 代码描述: static lo ...
- python 求组合数最快方法_利用Python进行组合数计算
如何利用Python来实现数学组合计算?一起来看看吧~ 前言 开学几个星期了emmm 作业一如既往的多....... 在做数学的时候经常要算组合数,奈何我的计算机太水了(其实是我懒哈哈) 正好最近学P ...
最新文章
- oracle数据库多表嵌套,sql – 在oracle中更新多个嵌套表中的多个记录
- python:爬虫初体验
- 【IM】关于稀疏学习和鲁棒学习的理解
- java添加时间,如何通过Java中的addHours()方法添加时间
- 关于chrome控制台警告:Synchronous XMLHttpRequest on the main thread终极解决办法
- spring data jpa封装specification实现简单风格的动态查询
- iPhone/iPad/iPod touch编程时版本区分
- python 学习目录
- 基于AT89C51的多层电梯控制系统
- ZYNQ系统中实现FAT32文件系统的SD卡读写 之一 硬件介绍
- 特殊字符ascii码
- 17.	Zigbee应用程序框架开发指南 - 使用Ember AppBuilder设计应用程序
- 兜兜转转,Image图片转换成PDF还是这款工具靠谱
- GTA4 EFLC cheat code
- 华为交换机S5720S-52P-SI-AC配置web管理端IP地址
- python中合法的赋值语句是_以下( )是合法的Python赋值语句。_学小易找答案
- vscod终端命令:
- java制作局域网聊天器_基于Java的局域网聊天工具
- 机器学习4——推荐系统
- hackthebox-admirer (adminer渗透 python-library-hijacking)