日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

windows - Java高精度運算問題求助

瀏覽:178日期:2023-10-25 11:34:42

問題描述

公司項目里面需要做大量的高精度運算,剛開始用double類型運算,后來發現用double類型運算后有些值的精確度超過了理想范圍,就用了BigDecimal來計算,現在的問題是BigDecimal的運算效率比double慢幾十倍,數據量大的話,慢的要死。請問有沒有好的解決方案?這個問題急需解決。

//相關性系數計算public BigDecimal getRelativityTool_bydim(RelativityTool u) {BigDecimal sim = new BigDecimal('0'); //最后的皮爾遜相關度系數BigDecimal common_items_len = new BigDecimal(this.rating_map_list.size()); //操作數的個數BigDecimal this_sum = new BigDecimal('0'); //第一個相關數的和BigDecimal u_sum = new BigDecimal('0'); //第二個相關數的和BigDecimal this_sum_sq = new BigDecimal('0'); //第一個相關數的平方和BigDecimal u_sum_sq = new BigDecimal('0'); //第二個相關數的平方和BigDecimal p_sum = new BigDecimal('0'); //兩個相關數乘積的和for (int i = 0; i < this.rating_map_list.size(); i++) { BigDecimal this_grade = this.rating_map_list.get(i); BigDecimal u_grade = u.rating_map_list.get(i); //評分求和 //平方和 //乘積和 this_sum = this_sum.add(this_grade); u_sum = u_sum.add(u_grade); this_sum_sq = this_sum_sq.add(this_grade.pow(2)); u_sum_sq = u_sum_sq.add(u_grade.pow(2)); p_sum = p_sum.add(this_grade.multiply(u_grade));}BigDecimal num = common_items_len.multiply(p_sum).subtract(this_sum.multiply(u_sum));BigDecimal den = sqrt(common_items_len.multiply(this_sum_sq).subtract(this_sum.pow(2)).multiply(common_items_len.multiply(u_sum_sq).subtract(u_sum.pow(2))));if (den.compareTo(new BigDecimal('0')) == 0) { sim = new BigDecimal('1');} else { sim = num.pide(den,5, BigDecimal.ROUND_HALF_UP);}return sim; } //大數字開方 public static BigDecimal sqrt(BigDecimal x) {BigDecimal n1 = BigDecimal.ONE;BigDecimal ans = BigDecimal.ZERO;while ((n1.multiply(n1).subtract(x)).abs().compareTo(BigDecimal.valueOf(0.001)) == 1) { BigDecimal s1 = x.pide(n1, 2000, BigDecimal.ROUND_HALF_UP); BigDecimal s2 = n1.add(s1); n1 = s2.pide(BigDecimal.valueOf(2), 2000, BigDecimal.ROUND_HALF_UP);}ans = n1;BigDecimal rt = new BigDecimal(ans.toString().split('.')[0]);return rt; }

問題解答

回答1:

除了使用C或者C++來做高精度運算之外,好像沒有什么辦法可以同時兼顧性能和精度了。

回答2:

大學計算機專業有門課程叫“計算方法”,專門探討如何在精度有限的計算過程中保持誤差最小化。樓主有興趣的話可以找下相關教材。

回答3:

后來發現用double類型運算后有些值的精確度超過了理想范圍是超過還是滿足不了?

這里有一段計算平方根的代碼,我從stackoverflow上找到的,在我自己的機子測試要比你上面那個快十倍左右。所以: 一則你可以通過改進的算法來提高性能,其二,最好的辦法找一些已有的library來直接用:例如這個上面列的

public void test_sqrt() { BigDecimal x = BigDecimal.valueOf(Long.MAX_VALUE); BigDecimal x0 = BigDecimal.ZERO; BigDecimal x2 = new BigDecimal(2); BigDecimal x1 = new BigDecimal(Math.sqrt(x.doubleValue())); while (!x0.equals(x1)) {x0 = x1;x1 = x.pide(x0, 2000, BigDecimal.ROUND_HALF_UP);x1 = x1.add(x0);x1 = x1.pide(x2, 2000, BigDecimal.ROUND_HALF_UP); } assertEquals(3037000499L, x1.longValue());}

標簽: java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩欧美中文字幕一区二区三区| 久久精品一本| 免费欧美在线视频| 激情综合亚洲| 91精品国产自产在线观看永久∴| 日韩中文字幕一区二区三区| 黄色日韩在线| 电影91久久久| 久久青青视频| 日本精品影院| 黄色在线一区| 综合国产精品| 亚洲高清二区| 欧美日韩国产欧| 一区二区亚洲视频| 久久国产精品免费精品3p| 国产极品一区| 视频国产精品| 国产日韩视频在线| 精品三级在线观看视频| 美日韩一区二区三区| 91亚洲自偷观看高清| 久久久久美女| 中文字幕一区二区三区四区久久 | 一区二区国产在线| 日本伊人午夜精品| 麻豆精品蜜桃视频网站| 精精国产xxxx视频在线野外| av一区二区高清| 美国三级日本三级久久99| 精品欧美一区二区三区在线观看| 日韩av不卡在线观看| 91欧美极品| 日产精品一区二区| 一区在线视频观看| 欧美精品三级在线| 日韩一区电影| 老色鬼久久亚洲一区二区| 欧美日韩va| 欧美久久天堂| 亚洲理论在线| 久久精品欧洲| 91精品电影| 国产乱子精品一区二区在线观看| 亚洲精品无播放器在线播放| 国产毛片精品久久| 日韩精品影视| 亚洲综合色婷婷在线观看| 欧美另类中文字幕| 成人精品中文字幕| 日韩高清在线观看一区二区| 五月天av在线| 日韩在线观看中文字幕| 97精品视频在线看| 日韩午夜视频在线| 久久麻豆精品| 国产精品v一区二区三区| 久久激情综合网| 日韩电影二区| 日韩av不卡一区二区| 日韩不卡免费视频| 在线看片福利| 婷婷综合成人| 日韩亚洲一区在线| 日本不卡视频在线| 欧美一区在线观看视频| 一本大道色婷婷在线| 久久人人99| 日韩国产欧美一区二区三区| 久久精品在线| 国产麻豆一区二区三区| 午夜久久影院| 国产一区二区三区网| 影音先锋久久精品| 日韩国产精品久久久| 99精品电影| 亚洲资源av| 久久精品一区二区国产| 视频一区在线播放| 中文字幕在线官网| 国产日韩欧美高清免费| 久久都是精品| 久久久国产精品一区二区中文| 欧美成人精品| 韩国一区二区三区视频| 日韩国产在线观看一区| 亚洲综合不卡| 国产欧美一区二区三区国产幕精品| 国产精品网在线观看| 中文欧美日韩| 99久久精品国产亚洲精品| 久久超碰99| 免费精品视频最新在线| 久久精品影视| 久久免费福利| 国产日产高清欧美一区二区三区| 精品中文在线| 91九色综合| 麻豆成人在线| 9久re热视频在线精品| 久久久久99| 日韩不卡免费高清视频| 精品久久网站| 久久免费影院| 狂野欧美性猛交xxxx| 免费av一区| 日本一不卡视频| 亚洲一区二区免费看| 亚洲午夜精品久久久久久app| 天堂va在线高清一区| 久久精品二区亚洲w码| 91免费精品国偷自产在线在线| 日本精品影院| 日韩专区视频网站| 热久久免费视频| 亚洲免费激情| 亚洲激情久久| 一区在线免费| 亚洲激情不卡| 亚洲综合精品| 中文一区一区三区免费在线观 | 欧美激情视频一区二区三区免费| 日韩av首页| 高清日韩欧美| 国产成人精品一区二区三区视频 | 六月丁香综合在线视频| 国产欧美一区| 美女国产一区二区三区| 麻豆国产精品| 国产一区日韩| 日韩综合精品| 五月天久久777| 欧美日韩国产一区精品一区| 欧美精品黄色| 中文一区一区三区免费在线观| 日韩久久视频| 日韩欧美网址| 女同性一区二区三区人了人一| 国产一区二区三区不卡视频网站 | 日韩精品首页| 欧美粗暴jizz性欧美20| 国产精品日韩| 日韩1区2区3区| 樱桃成人精品视频在线播放| 91成人精品| 日韩精品一区二区三区中文| 久久国产精品免费一区二区三区 | yellow在线观看网址| 欧美二三四区| 亚洲91久久| 久久亚洲国产精品一区二区| 91av一区| 97人人精品| 国产亚洲一区在线| 日韩精品亚洲专区| 激情中国色综合| 欧美特黄视频| 国产日韩欧美中文在线| 深夜福利视频一区二区| 天堂成人免费av电影一区| 日韩精品国产精品| 精品视频国内| 国产视频一区在线观看一区免费| av亚洲一区二区三区| 91久久在线| 国产亚洲一区| 亚洲电影有码| 日本aⅴ免费视频一区二区三区| 亚洲三级网站| 国产精品蜜月aⅴ在线| 婷婷视频一区二区三区| 免费在线观看一区| 国产综合精品一区| 婷婷精品在线| 国产精品xx| 亚洲欧美久久久| 国产精品成人国产| 1000部精品久久久久久久久| 日韩一区二区三区免费视频| 国产一区二区亚洲| 视频一区在线视频| 国产美女高潮在线| 欧美国产一级| 在线综合视频| 精品亚洲免a| 天堂成人国产精品一区| 另类国产ts人妖高潮视频| 国产精品一区2区3区| 精品亚洲美女网站| 日本强好片久久久久久aaa| 久久人人精品| 国产黄色精品| 亚洲一二av| 99热精品久久| 国产精品毛片aⅴ一区二区三区| 国产精品久久久久久久久久白浆| 热久久久久久| 欧美日韩国产亚洲一区| 国产 日韩 欧美 综合 一区| 综合欧美精品|