pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

用于確定兩個數(shù)字在舍入到 n 個有效十進(jìn)制數(shù)字

Function to determine if two numbers are nearly equal when rounded to n significant decimal digits(用于確定兩個數(shù)字在舍入到 n 個有效十進(jìn)制數(shù)字時是否幾乎相等的函數(shù))
本文介紹了用于確定兩個數(shù)字在舍入到 n 個有效十進(jìn)制數(shù)字時是否幾乎相等的函數(shù)的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

問題描述

我被要求測試第 3 方提供的庫.眾所周知,該庫精確到 n 個有效數(shù)字.任何不太重要的錯誤都可以安全地忽略.我想寫一個函數(shù)來幫助我比較結(jié)果:

I have been asked to test a library provided by a 3rd party. The library is known to be accurate to n significant figures. Any less-significant errors can safely be ignored. I want to write a function to help me compare the results:

def nearlyequal( a, b, sigfig=5 ):

此函數(shù)的目的是確定兩個浮點(diǎn)數(shù)(a 和 b)是否近似相等.如果 a==b(完全匹配)或者如果 a 和 b 在以十進(jìn)制形式寫入時舍入到 sigfig 有效數(shù)字時具有相同的值,則該函數(shù)將返回 True.

The purpose of this function is to determine if two floating-point numbers (a and b) are approximately equal. The function will return True if a==b (exact match) or if a and b have the same value when rounded to sigfig significant-figures when written in decimal.

任何人都可以提出一個好的實(shí)施方案嗎?我寫了一個迷你單元測試.除非你能在我的測試中看到一個錯誤,否則一個好的實(shí)現(xiàn)應(yīng)該通過以下:

Can anybody suggest a good implementation? I've written a mini unit-test. Unless you can see a bug in my tests then a good implementation should pass the following:

assert nearlyequal(1, 1, 5) 
assert nearlyequal(1.0, 1.0, 5) 
assert nearlyequal(1.0, 1.0, 5) 
assert nearlyequal(-1e-9, 1e-9, 5) 
assert nearlyequal(1e9, 1e9 + 1 , 5) 
assert not nearlyequal( 1e4, 1e4 + 1, 5) 
assert nearlyequal( 0.0, 1e-15, 5 ) 
assert not nearlyequal( 0.0, 1e-4, 6 ) 

補(bǔ)充說明:

  1. 值 a 和 b 可能是 int、float 或 numpy.float64 類型.值 a 和 b 將始終屬于同一類型.轉(zhuǎn)換不會給函數(shù)帶來額外的錯誤,這一點(diǎn)至關(guān)重要.
  2. 讓我們保留這個數(shù)字,因此轉(zhuǎn)換為字符串或使用非數(shù)學(xué)技巧的函數(shù)并不理想.該程序?qū)⒂梢晃粩?shù)學(xué)家審核,他希望能夠證明該函數(shù)完成了它應(yīng)該做的事情.
  3. 速度...我要比較很多數(shù)字,所以越快越好.
  4. 我有 numpy、scipy 和標(biāo)準(zhǔn)庫.其他任何東西對我來說都很難得到,尤其是對于項(xiàng)目的這么小部分.

推薦答案

numpy.testing中有一個函數(shù)assert_approx_equal(來源這里)這可能是一個很好的起點(diǎn).

There is a function assert_approx_equal in numpy.testing (source here) which may be a good starting point.

def assert_approx_equal(actual,desired,significant=7,err_msg='',verbose=True):
    """
    Raise an assertion if two items are not equal up to significant digits.

    .. note:: It is recommended to use one of `assert_allclose`,
              `assert_array_almost_equal_nulp` or `assert_array_max_ulp`
              instead of this function for more consistent floating point
              comparisons.

    Given two numbers, check that they are approximately equal.
    Approximately equal is defined as the number of significant digits
    that agree.

這篇關(guān)于用于確定兩個數(shù)字在舍入到 n 個有效十進(jìn)制數(shù)字時是否幾乎相等的函數(shù)的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

Python 3 Float Decimal Points/Precision(Python 3 浮點(diǎn)小數(shù)點(diǎn)/精度)
Converting Float to Dollars and Cents(將浮點(diǎn)數(shù)轉(zhuǎn)換為美元和美分)
What are some possible calculations with numpy or scipy that can return a NaN?(numpy 或 scipy 有哪些可能的計算可以返回 NaN?)
Python float to ratio(Python浮動比率)
How to manage division of huge numbers in Python?(如何在 Python 中管理大量數(shù)字的除法?)
mean from pandas and numpy differ(pandas 和 numpy 的意思不同)
主站蜘蛛池模板: 同步带轮_同步带_同步轮_iHF合发齿轮厂家-深圳市合发齿轮机械有限公司 | 七维官网-水性工业漆_轨道交通涂料_钢结构漆 | 车间除尘设备,VOCs废气处理,工业涂装流水线,伸缩式喷漆房,自动喷砂房,沸石转轮浓缩吸附,机器人喷粉线-山东创杰智慧 | 加中寰球移民官网-美国移民公司,移民机构,移民中介,移民咨询,投资移民 | 透平油真空滤油机-变压器油板框滤油机-滤油车-华之源过滤设备 | 专业广州网站建设,微信小程序开发,一物一码和NFC应用开发、物联网、外贸商城、定制系统和APP开发【致茂网络】 | 长沙印刷厂-包装印刷-画册印刷厂家-湖南省日大彩色印务有限公司 青州搬家公司电话_青州搬家公司哪家好「鸿喜」青州搬家 | 空心明胶胶囊|植物胶囊|清真胶囊|浙江绿键胶囊有限公司欢迎您! | 书法培训-高考书法艺考培训班-山东艺霖书法培训凭实力挺进央美 | 广东恩亿梯电源有限公司【官网】_UPS不间断电源|EPS应急电源|模块化机房|电动汽车充电桩_UPS电源厂家(恩亿梯UPS电源,UPS不间断电源,不间断电源UPS) | 武汉森源蓝天环境科技工程有限公司-为环境污染治理提供协同解决方案 | 【MBA备考网】-2024年工商管理硕士MBA院校/报考条件/培训/考试科目/提前面试/考试/学费-MBA备考网 | 斗式提升机_链式斗提机_带式斗提机厂家无锡市鸿诚输送机械有限公司 | 磁力反应釜,高压釜,实验室反应釜,高温高压反应釜-威海自控反应釜有限公司 | 无锡市珂妮日用化妆品有限公司|珂妮日化官网|洗手液厂家 | CTP磁天平|小电容测量仪|阴阳极极化_双液系沸点测定仪|dsj电渗实验装置-南京桑力电子设备厂 | 煤矿人员精确定位系统_矿用无线通信系统_煤矿广播系统 | 除尘器布袋骨架,除尘器滤袋,除尘器骨架,电磁脉冲阀膜片,卸灰阀,螺旋输送机-泊头市天润环保机械设备有限公司 | 科箭WMS仓库管理软件-TMS物流管理系统-科箭SaaS云服务 | 空气能暖气片,暖气片厂家,山东暖气片,临沂暖气片-临沂永超暖通设备有限公司 | 尊享蟹太太美味,大闸蟹礼卡|礼券|礼盒在线预订-蟹太太官网 | 猪I型/II型胶原-五克隆合剂-细胞冻存培养基-北京博蕾德科技发展有限公司 | 奥运星-汽车性能网评-提供个性化汽车资讯 | 体检车_移动CT车_CT检查车_CT车_深圳市艾克瑞电气有限公司移动CT体检车厂家-深圳市艾克瑞电气有限公司 | 原色会计-合肥注册公司_合肥代理记账公司_营业执照代办 | 成都热收缩包装机_袖口式膜包机_高速塑封机价格_全自动封切机器_大型套膜机厂家 | 雷达液位计_超声波风速风向仪_雨量传感器_辐射传感器-山东风途物联网 | 小港信息港-鹤壁信息港 鹤壁老百姓便民生活信息网站 | 冰雕-冰雪世界-大型冰雕展制作公司-赛北冰雕官网 | 工控机-工业平板电脑-研华工控机-研越无风扇嵌入式box工控机 | 山东集装箱活动房|济南集装箱活动房-济南利森集装箱有限公司 | 数控专用机床,专用机床,自动线,组合机床,动力头,自动化加工生产线,江苏海鑫机床有限公司 | 江西高职单独招生-江西单招考试-江西高职单招网 | 岩棉切条机厂家_玻璃棉裁条机_水泥基保温板设备-廊坊鹏恒机械 | 保镖公司-私人保镖-深圳保镖公司【环宇兄弟保镖】 | 广东风淋室_广东风淋室厂家_广东风淋室价格_广州开源_传递窗_FFU-广州开源净化科技有限公司 | 葡萄酒灌装机-食用油灌装机-液体肥灌装设备厂家_青州惠联灌装机械 | ICP备案查询_APP备案查询_小程序备案查询 - 备案巴巴 | 上海恒驭仪器有限公司-实验室平板硫化机-小型平板硫化机-全自动平板硫化机 | 防水套管厂家-柔性防水套管-不锈钢|刚性防水套管-天翔管道 | 123悬赏网_发布悬赏任务_广告任务平台 |