package lupin;
public class mono{
double[] shop=new double[101];
double[] sale=new double[101];
int s,sx;
double[] v=new double[101];
double beta;
void makedata(){
beta=0.5;
for(s=1;s<101;s++){
shop[s]=100*Math.random();
v[s]=seekv(s);
}
double d1;
int tr;
tr=0;
while(tr<100){
for(s=1;s<101;s++){
d1=0;
for(sx=1;sx<101;sx++){
d1=d1+d(sx,s);
}
sale[s]=d1;
}
for(s=1;s<101;s++){
shop[s]=0.9*shop[s]+0.1*sale[s];
}
for(s=1;s<101;s++){
v[s]=seekv(s);;
}
tr=tr+1;
}
}
double seekv(int s){
int sx,s1;
double v1;
v1=0;
for(sx=1;sx<100;sx++){
s1=sx-s;
if(s1<0)s1=-s1;
v1=v1+Math.pow(beta,s1)*shop[sx];
}
return v1;
}
double d(int s1,int s2){
int sx;
double d1,d2,x1;
d1=0;
for(sx=1;sx<101;sx++){
d1=d1+v[sx]/(met(s1,sx)+1);
}
d2=v[s2]/(met(s1,s2)+1);
x1=100*d2/d1;
return x1;
}
double met(int s1,int s2){
double x1;
x1=(s1-s2)*(s1-s2);
x1=Math.sqrt(x1);
return x1;
}
}
package lupin;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.scene.image.Image;
import java.io.File;
import static javafx.application.Application.launch;
import javafx.scene.image.ImageView;
import javafx.scene.Group;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.paint.Color;
import javafx.scene.shape.*;
import javafx.scene.input.MouseEvent;
public class pro extends Application {
GraphicsContext gc;
Circle cir;
double[] sale=new double[101];
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
Canvas canvas = new Canvas(500,500);
gc = canvas.getGraphicsContext2D();
canvas.setLayoutX(50);
canvas.setLayoutY(50);
mono sub=new mono();
sub.makedata();
sale=sub.sale;
int s;
gc.setFill(Color.WHITE);
gc.fillRect(0,0,400,400);
double maxs,mins;
maxs=0;
for(s=1;s<101;s++){
if(sale[s]>maxs)maxs=sale[s];
}
mins=6000;
for(s=1;s<101;s++){
if(sale[s]<mins)mins=sale[s];
}
double x1;
gc.setFill(Color.RED);
for(s=1;s<101;s++){
x1=500*(sale[s]-mins)/(maxs-mins);
gc.fillRect(5*s,500-x1,5,x1);
}
Group root = new Group();
Scene scene = new Scene(root, 700, 700);
root.getChildren().add(canvas);
primaryStage.setTitle("練習");
primaryStage.setScene(scene);
primaryStage.show();
}
}
最終更新:2014年05月21日 04:35