最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java 實現(xiàn)黃金分割數的示例詳解

 更新時間:2021年02月24日 12:10:30   作者:南 墻  
這篇文章主要介紹了java 實現(xiàn)黃金分割數的示例詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

黃金分割數 0.618 與美學有重要的關系。舞臺上報幕員所站的位置大約就是舞臺寬度的 0.618 處,

墻上的畫像一般也掛在房間高度的 0.618 處,甚至股票的波動據說也能找到 0.618 的影子…

黃金分割數是個無理數,也就是無法表示為兩個整數的比值。

0.618 只是它的近似值,其真值可以通過對 5 開方減去 1 再除以 2 來獲得,

我們取它的一個較精確的近似值:0.618034

有趣的是,一些簡單的數列中也會包含這個無理數,這很令數學家震驚!

1 3 4 7 11 18 29 47 … 稱為“魯卡斯隊列”。它后面的每一個項都是前邊兩項的和。

如果觀察前后兩項的比值,即:1/3,3/4,4/7,7/11,11/18 … 會發(fā)現(xiàn)它越來越接近于黃金分割數!

你的任務就是計算出從哪一項開始,這個比值四舍五入后已經達到了與 0.618034 一致的精度。

請寫出該比值。格式是:分子/分母。比如:29/47

/*
*/
package Question40_49;
public class Question44 {
public static void main(String[] args) {
int a=1,b=3,t;
while(true){
if(Math.abs((double)a/b-0.618034)<0.000001){
System.out.println(a+"/"+b+" = "+(double)a/b);
break;
}
t=a;
a=b;
b+=t;
}
}
}

運行結果:

1364/2207

補充:費波那契數列java兩種實現(xiàn)+逼近黃金分割率功能

費波那契數列的簡單實現(xiàn),這是常見的遞歸問題,但實現(xiàn)的方法有很多種,當然算法肯定要簡單高效的了,

網上那些遞歸算法總覺得不好看,所以我自己就寫了下面這個程序,畢竟算法是根據問題出來的,遇到不會的問題還是有自己的想法比較好,特別是算法這方面的。

package test;
 
import java.text.DecimalFormat;
import java.util.Arrays;
 
//兩種方法打印個數為n的斐波那契數列
public class Fibonacci {
 
 //不借助工具容器的數學計算,當增加的功能越來越多時,簡潔性和可讀性都會大大降低
 // n為需要顯示的數列個數 (注:僅顯示int值范圍類數列,大概能顯示45個)
 protected void way1(int n) {
 int n1 = 1;
 int n2 = 1; 
 int count = 0;
 String string = new String(1+"\t"+1+"\t"); 
 if(n == 1) { 
 System.out.println("1");
 }
 //可顯示n為1開始的任何數的數列
 while( count != n/2 -1 ) {
 n1 += n2;
 string += Integer.toString(n1)+"\t"; 
 n2 += n1; 
 string += Integer.toString(n2)+"\t";
 count ++;
 }
 if (n%2!=0) {
 n1 = n1 + n2;
 string += Integer.toString(n1)+"\t"; 
 }
 System.out.println(string);
 }
 
 //借助數組的迭代實現(xiàn),有很好的可讀性,同時十分簡潔,在后續(xù)功能增加的情況下也不復雜
 //比如這里增加一個功能,求黃金分割率,要用上面的實現(xiàn)的話,那代碼就太亂了
 protected void way2(int n) {
 int[] fbci =new int [n];
 double[] goldindex = new double[n-1]; 
 fbci[0] = 1;
 fbci[1] = 1;
 goldindex[0] = 1.00; 
 for (int i = 2; i < fbci.length; i++) {
 fbci[i] = fbci[i-1] + fbci[i-2];
 }
 
 DecimalFormat dFormat = new DecimalFormat("0.000000");//控制小數位數,可取消該功能
 String result = new String();
 for (int i = 1; i < goldindex.length; i++) {
 goldindex [i] = (double)(fbci[i])/(double)(fbci[i+1]);
 result += dFormat.format(goldindex [i])+"\t"; 
 } 
 System.out.println(Arrays.toString(fbci));
 System.out.println(result);
 }
 
 public static void main(String[] args) {
 // TODO Auto-generated method stub
 Fibonacci a1 = new Fibonacci();
 a1.way1(15);
 a1.way2(15);
 } 
}

1 1 2 3 5 8 13 21 34 55 89 144 233 377 610

[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610]

0.500000 0.666667 0.600000 0.625000 0.615385 0.619048 0.617647 0.618182 0.617978 0.618056 0.618026 0.618037 0.618033

補充:JAVA中黃金分割點的問題

描述:     

尋找某兩個數相除,其結果 離黃金分割點 0.618最近

(1)分母和分子不能同時為偶數           

(2)分母和分子 取值范圍在[1-20

/** 
* <p>Title: Excise1</p> 
* <p>Description:    黃金分割點              </p>
*  描述:尋找某兩個數相除,其結果 離黃金分割點 0.618最近  
*  (1)分母和分子不能同時為偶數      (2)分母和分子 取值范圍在[1-20]
* @author Mr.chen 
* @date 2018年8月22日 
*/
public class Excise1 {
 public static void main(String[] args) {
 
  int A = 0;          //A 比較后傳出來的新分子
     int B=1;           //B 比較后傳出的新分母
     double c=0,C=1;   //C 比較后傳出來的新a/b的值
     for(int a=1;a<21;a++) {   //循環(huán)分子
       for(int b=1;b<21;b++) { //循環(huán)分母
         if(a%2==0&b%2==0)  //如果兩個同時為偶數是跳出
           continue;
         c=(double)a/b;    //計算a/b的值并且 強制轉化類型 賦值給c
         if(Math.abs(c-0.618)<Math.abs(C-0.618)) { //如果通過math函數調用.abs()方 
                             法;取方法內參數的絕對值
           C=c;   //通過畫x坐標軸 如果算出來的值小于一開始設定的(大C-0.168)就證 
               // 明距離0.168左邊的距離比右邊的短 所以賦值給大C 并且再次循環(huán) 
               //目的使得通過循環(huán)讓分子和分母的比值越來越趨近于0.168
           A=a;  //將合適的分子a賦給一開始設定好的A
           B=b;   //將合適的分母b賦給一開始設定好的B
         }
         
       }
     }
     System.out.println("離黃金分割點(0.618)最近的兩個數相除是:"+A+"/"+B+"="+C);
 //將傳給A B 的值輸出來
  }
}

對于小白的我來說這個邏輯是真的屌!?。。。。。。。。。?!

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關文章

  • 配置gateway+nacos動態(tài)路由管理流程

    配置gateway+nacos動態(tài)路由管理流程

    這篇文章主要介紹了配置gateway+nacos動態(tài)路由管理流程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java實現(xiàn)根據前端所要格式返回樹形3級層級數據

    Java實現(xiàn)根據前端所要格式返回樹形3級層級數據

    這篇文章主要為大家詳細介紹了Java如何實現(xiàn)根據前端所要格式返回樹形3級層級數據,文中的示例代碼講解詳細,有需要的小伙伴可以了解下
    2024-02-02
  • java隨機生成8位數授權碼的實例

    java隨機生成8位數授權碼的實例

    下面小編就為大家?guī)硪黄猨ava隨機生成8位數授權碼的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • 使用Java實現(xiàn)一個簡單的定時器

    使用Java實現(xiàn)一個簡單的定時器

    這篇文章主要為大家詳細介紹了如何使用Java實現(xiàn)一個簡單的延時/定時器,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-12-12
  • SpringBoot超詳細講解@Enable*注解和@Import

    SpringBoot超詳細講解@Enable*注解和@Import

    這篇文章主要介紹了SpringBoot?@Enable*注解和@Import,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • Java Eclipse中實現(xiàn)快速替換變量

    Java Eclipse中實現(xiàn)快速替換變量

    這篇文章主要介紹了Java Eclipse中實現(xiàn)快速替換變量,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • 詳解Java反射實現(xiàn)Aop代理

    詳解Java反射實現(xiàn)Aop代理

    本篇文章主要介紹了Java 反射實現(xiàn) Aop 代理,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • 關于連接池詳解(HikariCP、Druid)

    關于連接池詳解(HikariCP、Druid)

    這篇文章主要介紹了關于連接池詳解(HikariCP、Druid),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • Spring實戰(zhàn)之容器后處理器操作示例

    Spring實戰(zhàn)之容器后處理器操作示例

    這篇文章主要介紹了Spring實戰(zhàn)之容器后處理器操作,結合實例形式分析了spring容器后處理器配置、使用操作技巧與相關注意事項,需要的朋友可以參考下
    2019-12-12
  • springboot集成springsecurity 使用OAUTH2做權限管理的教程

    springboot集成springsecurity 使用OAUTH2做權限管理的教程

    這篇文章主要介紹了springboot集成springsecurity 使用OAUTH2做權限管理的教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12

最新評論

南城县| 洛隆县| 宣城市| 神木县| 奇台县| 剑阁县| 甘洛县| 阳信县| 富平县| 城口县| 化隆| 安阳县| 辽阳市| 平乐县| 丰镇市| 汕头市| 徐闻县| 富阳市| 东城区| 昔阳县| 高要市| 墨玉县| 军事| 闻喜县| 吴旗县| 尤溪县| 鹤岗市| 司法| 南昌县| 万载县| 桦甸市| 嘉定区| 英吉沙县| 木兰县| 克东县| 桦川县| 齐齐哈尔市| 平谷区| 修文县| 沂南县| 昆明市|