📄 rantestdemo.java
字号:
package demo;
import javax.swing.JPanel;
import org.jfree.chart.*;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.xy.*;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
import java.awt.*;
import javax.swing.JPanel;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import ran.Random;
/**
* <p>Title: 随机数序列测试主程序</p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2006</p>
* <p>Company: </p>
* @author maya
* @version 1.0
*/
public class RanTestDemo extends ApplicationFrame
{
/**
* 构造函数
* @param s String 标题
*/
public RanTestDemo(String s)
{
super(s);
setContentPane(createDemoPanel());
}
/**
* 创建统图表
* @param xydataset XYDataset 图表数据
* @param title String 图表标题
* @return JFreeChart 统计图JFreeChart类
*/
private static JFreeChart createChart(XYDataset xydataset,String title)
{
JFreeChart jfreechart = ChartFactory.createXYLineChart(title, "X", "Y", xydataset, PlotOrientation.VERTICAL, true, true, false);
return jfreechart;
}
/**
* 生成随机序列游程统计的绘图数据
* @param ran Random 随机序列类实例
* @param title String 标题
* @return XYDataset 返回XYDataset类图表数据
*/
private static XYDataset createYCDataset(Random ran,String title)
{
XYSeries xyseries = new XYSeries(title);
int[] y=ran.countYC();
System.out.print("游程="+y.length);
for(int i=0;i<10;i++){
xyseries.add(i,y[i]);
System.out.println("c["+i+"]="+y[i]);
}
return new XYSeriesCollection(xyseries);
}
/**
* 生成随机序列的相关统计的绘图序列
* @param ran Random 随机序列实例
* @param title String 标题
* @return XYDataset 返回XYDataset类图表数据
*/
private static XYDataset createRnDataset(Random ran,String title)
{
XYSeries xyseries = new XYSeries(title);
double[] y=ran.rt(400,1);
for(int i=0;i<400;i++){
xyseries.add(i,y[i]);
System.out.println("r["+i+"]="+y[i]);
}
return new XYSeriesCollection(xyseries);
}
/**
* 创建随机序列游程和相关统计图
* @return JPanel
*/
public static JPanel createDemoPanel()
{
JPanel jpanel = new JPanel(new GridLayout(2, 1));
Random ran=new Random(); //创建随机类实例
ran.setRndmSequence(200,"1111","2222"); //创建随机序列
System.out.println("0比特的个数:"+ran.count0bits()); //打印零比特总数目
//游程图
JFreeChart jfreechart = createChart(createYCDataset(ran,"游程统计"),"游程");
XYPlot xyplot = (XYPlot)jfreechart.getPlot();
XYLineAndShapeRenderer xylineandshaperenderer = new XYLineAndShapeRenderer();
xylineandshaperenderer.setSeriesShapesVisible(1, true);
xyplot.setRenderer(xylineandshaperenderer);
ChartPanel chartpanel = new ChartPanel(jfreechart);
jpanel.add(chartpanel);
//相关图
JFreeChart jfreechart1= createChart(createRnDataset(ran,"相关曲线"),"相关");
ChartPanel chartpane2 = new ChartPanel(jfreechart1);
jpanel.add(chartpane2);
return jpanel;
}
/**
* 测试主函数入口
* @param args String[]
*/
public static void main(String args[])
{
RanTestDemo demo= new RanTestDemo("随机数测试");
demo.pack();
RefineryUtilities.centerFrameOnScreen(demo);
demo.setVisible(true);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -