股票雷达Raquant笔试题

空闲之作,相互学习^_^

 

题目要求:

1、生成五千行文本文件;

2、其中每一行分成3列,每一列是一个随机数,取值1到100的整数;

3、读取生成的文件,算出三列全是偶数的行数与三列全是奇数的行数的比值;

4、重复1到3的步骤,重复50遍,打印出50个数,计算这50个数的标准差。

 

 1 public class testWork {
 2 
 3     // 得50个数
 4     public double[] db() {
 5 
 6         int evenNum = 0;
 7         int oddNum = 0; // jishu
 8 
 9         int count_all_even = 0;
10         int count_all_odd = 0;
11 
12         int arr[][] = new int[5000][3];
13         double db[] = new double[50];
14 
15         for (int h = 0; h < 50; h++) {
16             System.out.println("第"+(h+1)+"遍输出5000行数据");
17             for (int i = 0; i < 5000; i++) {
18 
19                 for (int j = 0; j < 3; j++) {
20 
21                     arr[i][j] = (int) (Math.random() * 100);
22 
23                     if (j == 2) {
24                         System.out.println(arr[i][0] + " " + arr[i][1] + " "
25                                 + arr[i][2]);
26                     }
27 
28                     if (arr[i][j] % 2 == 0) {
29                         evenNum++;
30                     } else {
31                         oddNum++;
32                     }
33                 }
34 
35 //                System.out.println(evenNum + " " + oddNum);
36 
37                 if (evenNum == 3) {
38                     count_all_even++;
39                 }
40                 if (oddNum == 3) {
41                     count_all_odd++;
42                 }
43 
44                 evenNum = 0;
45                 oddNum = 0;
46 
47             }
48 //            System.out.println(count_all_even + " " + count_all_odd);
49             db[h] = (double) count_all_even / count_all_odd;
50 //            System.out.println("第"+(h+1)+"遍count_all_even / count_all_odd的比值为" + " : " + db[h]);
51 
52             count_all_even = 0;
53             count_all_odd = 0;
54         }
55         return db;
56     }
57 
58     // 获取平均值
59     public double getAverage(double db[]) {
60         int sum = 0;
61         for (int i = 0; i < db.length; i++) {
62             sum += db[i];
63         }
64         return (double) (sum / db.length);
65     }
66 
67     // 获取标准差
68     public double getStandardDevition(double db[]) {
69         double sum = 0;
70         for (int i = 0; i < db.length; i++) {
71             sum += Math.sqrt(((double) db[i] - getAverage(db))
72                     * (db[i] - getAverage(db)));
73         }
74         return (sum / (db.length - 1));
75     }
76 
77     public static void main(String[] args) {
78 
79         testWork tw = new testWork();
80 
81         double x = 0.0;
82         
83         double db[]=tw.db();
84         
85         for(int i=0;i<50;i++){
86             System.out.println("第"+(i+1)+"遍count_all_even / count_all_odd的比值为" + " : " + db[i]);
87         }
88         
89         x = tw.getStandardDevition(db);
90         System.out.println("50个数的标准差为: "+x);
91     }
92 
93 }

 结果如下:

 

转载于:https://www.cnblogs.com/daxman/p/6490764.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值