首页 > 编程知识 正文

黄金分割点的画法,黄金分割点使用技巧

时间:2023-05-04 20:59:50 阅读:209661 作者:609

题目:
寻找某两个数相除,其结果 离黄金分割点 0.618最近;
要求:1)分母和分子不能同时为偶数
2)分母和分子 取值范围在[1-20]

分析:可采用嵌套for循环,分别遍历分子和分母,求出相除结果,若求出的结果小于上一次,则将上一次结果替换为本次结果。

代码如下:

public class goldpoint {public static void main(String[] args) {//寻找某两个数相除,其结果 离黄金分割点 0.618最近//分母和分子不能同时为偶数//分母和分子 取值范围在[1-20]int fenzi = 0;//分子int fenmu = 0;//分母float mindiff = 30;//距离黄金分割点的最小差值int finalfenzi = 0;//最终求得的分子int finalfenmu = 0;//最终求得的分母for(fenmu = 1;fenmu<=20;fenmu++) {for(fenzi = 1;fenzi<=20;fenzi++) {if((fenzi%2 == 0) && (fenmu%2==0) )//如果分子分母同时为偶数,则跳出本次循环continue;float value = (float)fenzi/fenmu;//求值float diff = Math.abs(value-0.618f);//求差值的绝对值if(diff<mindiff) {//若本次结果小于上次,则更新变量mindiff = diff;finalfenzi = fenzi;finalfenmu = fenmu;}}}System.out.println("最贴近黄金分割点0.618数为:" + "分子" + finalfenzi + "分母" + finalfenmu);}}

运算结果

最贴近黄金分割点0.618数为:分子8分母13

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。