📄 golddiv.java
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.Panel;
import java.io.*;
public class GoldDiv extends Frame implements ActionListener
{
private float a=1.43f,b=4.57f,e=0.0001f,MaxX;
int flag=1;
Button bb;
public GoldDiv()
{
setLayout(new FlowLayout(FlowLayout.LEFT));
bb=new Button("DRAW");
add(bb);
setSize(700,500);
setBackground(Color.white);
bb.addActionListener(this);
}
public void paint(Graphics g)
{
float i,x;
g.drawLine(300,50,300,450);
g.drawLine(10,250,700,250);
for(i=a;i<=b;i=i+0.01f)
{
x=i-3.0f;
g.drawLine((int)(i*100),(int)(250-Fac(x)*100),(int)(i*100+1),(int)(250-Fac(x+0.01f)*100));
}
}
public float Fac(float x)
{
float y;
y=(float)Math.cos(x);
return y;
}
public void Scrawl(float A,float B)
{
float x;
int x1,x2,y1,y2;
Graphics g = getGraphics();
if(flag==1)
{
g.setColor(Color.blue);
flag++;
}
else if(flag==2)
{
g.setColor(Color.green);
flag++;
}
else if(flag==3)
{
g.setColor(Color.red);
flag=(flag+1)%3;
}
for(int j=0;j<500000000;j++){}
for(x=A;x<=B;x=x+0.01f)
{
x1=(int)(x*100)+300;
x2=(int)(x*100)+300;
y1=250-(int)(Fac(x)*100);
y2=250-(int)(Fac(x)*100);
g.drawLine(x1,y1,x1,250);
g.drawLine(x2,y2,x2,250);
}
/* x1=(int)(A*100)+300;
x2=(int)(B*100)+300;
y1=250-(int)(Fac(A)*100);
y2=250-(int)(Fac(B)*100);
g.drawLine(x1,y1,x1,250);
g.drawLine(x2,y2,x2,250);*/
}
public void Metic()
{
float x1,x2,f1,f2;
a=a-3f;
b=b-3f;
x1=a+(float)(0.382*(b-a));
x2=a+(float)(0.618*(b-a));
f1=Fac(x1);
f2=Fac(x2);
while(b-a>e)
{
if(f2>f1)
{
System.out.println("AAAAAAAAAAAAAAAAAA");
a=x1;
x1=x2;
f1=f2;
x2=a+(float)(0.618*(b-a));
f2=Fac(x2);
}
else
{
System.out.println("BBBBBBBBBBBBBBB");
b=x2;
x2=x1;
f2=f1;
x1=a+(float)(0.382*(b-a));
f1=Fac(x1);
}
Scrawl(a,b);
}
MaxX=(a+b)/2;
System.out.println(MaxX);
}
public void actionPerformed(ActionEvent eve)
{
if(eve.getSource()==bb)
{
Metic();
System.out.println("completed");
}
}
public static void main(String[] args)throws IOException
{
GoldDiv fuck=new GoldDiv();
fuck.setTitle("黄金分割搜索");
fuck.setVisible(true);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -