zoukankan      html  css  js  c++  java
  • 四舍五入[银行家算法]

      对于“四舍五入”的概念,相信大家都熟悉,因为小学三四年级就已经接触过了,常规算法这儿从略。
    但对于银行家算法,也许有不少人比较生疏。近期学习中遇到了,也了解一下算法可以概括为“四舍六入五取偶”。那就是:(假设对小数部分进行舍入的话),
    待舍入的部分恰好为0.5000,则需要看前面一位数的奇偶性,奇数则入,偶数则舍。
    举几个例子来描述一下,比如:
    1.5000 -> 2
    2.5000 -> 2
    3.5000 -> 4
    4.5000 -> 4
    …… ……
    那,为什么要这么做?

    按常规的四舍五入算法
    …… ……
    [0.5,1.5) = 1
    [1.5,2.5) = 2
    [2.5,3.5) = 3
    [3.5,4.5) = 4
    [4.5,5.5) = 5
    [5.5,6.5) = 6
    …… ……
    左闭右开会让恰好为n+0.5的数值全部入,而左开右闭则全部舍,所以,一般的四舍五入会
    使数值有向一端的倾向性。数据太多,就会形成相对较大的偏差,所以,就有人提出银行家算法。
    银行家算法
    …… ……
    (0.5,1.5) = 1
    [1.5,2.5] = 2
    (2.5,3.5) = 3
    [3.5,4.5] = 4
    (4.5,5.5) = 5
    [5.5,6.5] = 6
    …… ……
    这样,隔一个n+0.5数值入,隔一个舍,从而使数值趋于均衡.
    整体来看,数据不至于出现大的偏差

  • 相关阅读:
    Tomcat部署项目
    正则表达式
    文件的上传和下载
    实现扫码登陆
    onepill Android端
    部署SpringBoot到阿里云
    Gson
    HTML自动刷新页面
    Spring Data JPA根据属性名查询
    Spring Date JPA实现增删改查
  • 原文地址:https://www.cnblogs.com/jiangxiulian/p/5394921.html
Copyright © 2011-2022 走看看