Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> небольшой генератор случайных чисел, решил выложить недавно написанную прогу 
V
    Опции темы
ЛунныйОборотень
Дата 6.12.2008, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 12.11.2006

Репутация: 1
Всего: 1



решил выложить прогу -генератор случайных чисел и создающей таблицу для последующего построения гистограммы.(графика так и не получилась)

(возможно это неподходящий раздел,поэтому модераторы перенесите ее куда надо)


Код

/*
 <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);
        
    }

}


PM MAIL   Вверх
MisterCleric
Дата 6.12.2008, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1043
Регистрация: 16.2.2006
Где: Харьков, Украина

Репутация: 5
Всего: 38



Дык, а в чем вопрос. Мы здесь собираемся для решения каких-то проблем. Ил для выяснения каких-то насущных вопросов. Зачем нам твой код пока не понятно...


--------------------
ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ...
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0976 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.