решил выложить прогу -генератор случайных чисел и создающей таблицу для последующего построения гистограммы.(графика так и не получилась)
(возможно это неподходящий раздел,поэтому модераторы перенесите ее куда надо)
| Код | /* <html> <body> <applet code="myrand.class" width=200 height=200> </applet> </body> </html> */ /* * To change this template, choose Tools | Templates * and open the template in the editor. */
/** * * @author ЛунныйОборотень */ import java.applet.Applet; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.geom.Line2D; import java.util.Random;
import sun.java2d.loops.DrawLine;
// SDELAT XiMin i // XiMax
public class myrand extends Applet{
/** * @param args */ Random t=new Random(); static myrand r=new myrand(); static double[] mass=new double[10000];
double[] Temp_mass =new double[10000]; // vremennyi massiv static double[] Xi=new double[1000]; // Xi= summa Rj static double Xifin,sigma,a; private static Graphics2D g; double f,D,e; // D=dispersia,e-srednee znachenie double h;// shag(dlina intervala int k=10;//chislo intervalov double XiMin,XiMax; // minimum i maksimum double dMax,dMin; //min i max real double[] gi=new double[1000]; //gi- g i-oe g0=XiMin=levaia granitsa intervala // pravaia granitsa k-go(poslednego intervala gi[k]=XiMax; // granitsi megdy intervalami gi[j]=XiMin+j*h ;(j=1,2,...,k-1) double[] limits=new double[1000]; int[] m=new int[100]; // kol-vo vxogdenii X v interval double[] XiStat=new double[1000]; double[] XiReal=new double[1000]; double[] Pj=new double[1000]; // otnositelnaia chastota double[] PjSum=new double[1000]; //---------------------------------------------------- Line2D line=new Line2D.Double(); // gr = image.getGraphics();
//--------------------------------------------------------------- double[] myrandm() { //System.out.println("f-"+t.nextFloat()); //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- // генератор псевдослучайных чисел for(int i=0;i<1000;i++) { mass[i]=t.nextFloat();// massiv slychainyx chisel( mnogestvo // znachenii Ri Temp_mass[i]=mass[i]; } for(int y=0;y<1000;y++) { f+=mass[y]; // predvarit srednee znacheni*1000 } e=f/1000;// srednee znachenie //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- // вывод for(int s=0;s<1000;s++) { D+=mass[s]*mass[s]; } for(int j=0;j<1000;j++) { // System.out.println(""+"mass[j]"+mass[j]); } //System.out.println("среднее значение r= "+ e); //System.out.println("Dispersia D="+D/1000); return mass; } //--------------------------------------------------------------- public void staticTable(double[] x) {//XiMin=Xi[0]; //XiMax=Xi[0]; for(int i=0;i<190;i++) {r.myrandm(); for(int j=0;j<13;j++) { Xi[i]+=x[j]; } Xi[i]=Xi[i]-6; Xi[i]=Xi[i]*2+3; // eto Xi System.out.println(i+ "\tMassiv Xi="+"\t"+(Xi[i])); if(Xi[i]<XiMin) { XiMin=Xi[i]; } // XiMax=Xi[0]; if(Xi[i]>XiMax) { XiMax=Xi[i]; } } /* for(int i=0;i<190;i++) { r.myrandm(); for(int j=0;j<13;j++) {Xi[j]+=x[i]; //x[i] eto mass } Xi[i]=Xi[i]-6; Xi[i]=Xi[i]*2+3; // eto Xi System.out.println(i+ "\tMassiv Xi="+"\t"+(Xi[i])); // naxodim Ximax i Ximin; // r.Max(Xi); //dMax=r.Max(Xi); //dMin=r.Min(Xi); //dMin=Min(Xi); //XiMin=Xi[0]; if(Xi[i]<XiMin) { XiMin=Xi[i]; } // XiMax=Xi[0]; if(Xi[i]>XiMax) { XiMax=Xi[i]; } } /* provodia obratnye operatsii mogno polychit normalno raspredelennyiy slychainyiy velichinu s lybumi zadannymi xarakteristikami (a,sigma) so znacheniami vychisliaemymi po formule Xifin=sigma*Xi+a; */ // System.out.println("XMax= "+dMax+"\tXMin="+dMin); System.out.println("XiMin= "+XiMin+"\t"+"Xmax= "+XiMax); for(int y=0;y<Xi.length;y++) { // System.out.println(""+Xi[y]); } h=(XiMax-XiMin)/k; System.out.println("h= \n\t"+h); // postroenie statisticheskogo riada //---------------------------------------------------------- // 1. po tsykly vychislit gi[j] ot = to k // 2. vychislit granitsi razriadov // 3. mj-kolichestvo znachenii vyborki Xi[],prixodiashii na j-i razriad // 4. gi[0]=XiMin; gi[k]=XiMax; for(int j=1;j<k;j++) { gi[j]=XiMin+j*h; System.out.println("gi["+j+"]="+gi[j]); } for(int j=0;j<k;j++) {limits[0]=XiMin-gi[1]; if(j>=1) { limits[j]=gi[j-1]-gi[j]; } //System.out.println("limits["+(j+1)+"]="+limits[j]); } //--------------------------------------------------------- int count=0; //---------------------------------------------------------- // vychislenie m;??pravilno??
for(int j=1;j<k;j++) for(int i=0;i<190;i++) { if(j==0) { } if((Xi[i]>gi[j-1])) if((Xi[i]<gi[j])) { m[j-1]=m[j-1]+1; } } // proverka for(int j=0;j<k;j++) {//System.out.println("m["+(j-1)+"]="+m[j-1]); System.out.println(""+m[j]); } //----------------
for(int i=1;i<k+1;i++) { Pj[i]=(m[i]/190.0); //Pj[i]=Pj[i]*1; } for(int i=1;i<k+1;i++) { System.out.println("Pi= "+Pj[i]); } // nedodellannaia chastota for(int i=1;i<k+1;i++) { PjSum[i]=Pj[i]; if(i>1) { } } //---------------------------------------------------------- } /* public void paint(Line2D line) {// risuem grafik po pi (y) i po gi (x) //1 risuem osi x1 y1 x2 y2 //g1.drawLine(10, 100, 300, 100); //g1.drawLine(10, 10, 10, 100); // narisovat metki //g1.drawLine(10,20 ,30 , 35); line.setLine(100.3232, 33.2233, 23.533, 0.0332); // line.setLine(10, 22, 100, 22); } */ /* public void paint(Graphics g) {
Graphics2D g2 = (Graphics2D) g; // line.setLine(22.3, 123.2, 55.4, 22.4); int v[]={30,44}; // risovanie linii // eto OY // line.setLine(gi[1]*1000, Pj[1]*10, gi[1]*1000, Pj[10]*10); //line.setLine(v[0], v[1], v[1], v[0]); g2.draw(line); //line.setLine(10, 100, 200, 100); // line.setLine(gi[1], , arg2, arg3) g2.draw(line); for(int i=0;i<5;i++) {Pj[i]=Pj[i]*10000; gi[i]=gi[i]*10; line.setLine(Pj[i], gi[i], Pj[i], gi[i]); g2.draw(line); } } */ public void init() { r.myrandm(); r.staticTable(mass); }
public static void main(String[] args) { // TODO Auto-generated method stub r.myrandm(); r.staticTable(mass); r.getGraphics(); // r.paint(g); //myrand frame=new myrand(); //frame.setVisible(true); }
}
|
|