使系统生成50个0-9之间的随机数

使系统生成50个0-9之间的随机数,将每个数字出现的次数存入一个一维数组中,统计出现次数最多和出现次数最少的数字,及出现次数和出现频率。

import java.util.Scanner;

public class Anpa1010doubleball {

public static void main(String[] args) {

int [] b=new int [50];  //定义长度为50的数组b

int [] number=new int[10];  //定义长度为10的数组number用来统计数组b中

//产生的0~9的个数

for(int i=0;i<b.length;i++){

b[i]=(int)(Math.random()*10);   //随机生成50个0~9的数,

//并存到数组b中

}

for(int i=0;i<b.length;i++){

int num=b[i];        //将数组b中的数提取出来

number[num]++;     //因为0~9这10个数对应数组number的下表位,                     //所以从数组b中提取出来的0~9直接赋到数组number中

//比如num=b[i]=0,则number[0]自增一次

}

int most=0;     //统计生成最多的数

int least=50;   //统计生成最小的数

for(int i=0;i<number.length;i++){

while(number[i]>most){     //比较生成的数中最多的数的个数

most=number[i];        //与生成最大值和最小值相似

break;

}

while(number[i]<least){   //比较生成的数中最少的数的个数

least=number[i];

break;

}

System.out.print(i+"出现的次数是"+number[i]+"\n");

//0~9每个数出现的次数

}

//有可能出现好几个相同次数的数,所以用for循环。

for(int i=0;i<number.length;i++){

while(number[i]==most){

System.out.println("出现最多的数是"+i+",共出现"+number[i]+"次,出现频率为:"+(number[i]*0.02));

break;

}

while(number[i]==least){

System.out.println("出现最少的数是"+i+",共出现"+number[i]+"次,出现频率为:"+(number[i]*0.02));

break;

}

}

时间: 2024-08-04 03:34:11

使系统生成50个0-9之间的随机数的相关文章

52.从键盘上输入若干学生成绩(成绩在0~100之间),计算平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入

//1.建立一个for循环用于输入数据,设置退出条件 //2.算出平均成绩 #include<iostream> using namespace std; int main() { int Score,sum=0,k=0; int a[100]; float Average; cout<<"please input some students's score:"<<endl; for(int i=0;i<100;i++) { cin>&g

C语言 判断0~3000之间的闰年

熟话说"四年一润,百年不润,四百年再润".那么我们来用编程查找闰年吧! #include<stdio.h> int main() { int year,leap=1;  printf("\t\t\t判断0~3000之间的闰年\n");  printf("请输入0~3000之间的年份\n"); flag:  scanf("%d",&year); //输入年份  if(year>0&&ye

js 数组排序要注意的问题,返回的值最好为 -1, 0, 1之间的值

var test10Elements = [7, 6, 5, 4, 3, 2, 1, 0, 8, 9]; var comparefn = function (x, y) { return x - y; }; test10Elements.sort(comparefn); var comparefn2 = function (x, y) { return x > y; }; test10Elements.sort(comparefn2); http://w3help.org/zh-cn/cause

100万个数据,数据值在0~65535之间,请用尽可能少的内存和最快的速度从小到大排序

场景说明:100万个数据,数据值在0~65535之间,请用尽可能少的内存和最快的速度从小到大排序 voidsort(int* array, int n) { //n的值在100万左右 //你的实现 } 我们首先观察到所有的数据已经保存到了array数组中,现在我们需要做的就是将数组中的元素排序.现在我们把数组中的元素提取出来比如是3,然后我们提取出数组下标是3的元素,保存到临时空间,通过负数来计算个数: void sort(int* array, int n) {     int tmp=0;

Java基础知识强化之集合框架笔记35:List练习之产生10个1~20之间的随机数(要求:随机数不能重复)

1. 需求:获取10个1-20之间的随机数,要求不能重复 用数组实现,但是数组的长度是固定的,长度不好确定.所以我们使用集合实现. 分析: • 创建产生随机数的对象 • 创建一个存储随机数的集合. • 定义一个统计变量.从0开始. • 判断统计遍历是否小于10 是:先产生一个随机数,判断该随机数在集合中是否存在. 如果不存在:就添加,统计变量++. 如果存在:就不搭理它.   否:不搭理它      • 遍历集合 2. 代码实现: 1 package cn.itcast_02; 2 3 impo

获取10个1-20之间的随机数,要求不能重复

package cn; import java.util.ArrayList; import java.util.Random; /**  * 获取10个1-20之间的随机数,要求不能重复  *   * 用数组实现,但是数组的长度是固定的,长度不好确定.  * 所以我们使用集合实现.  *   * 分析:  *  1.创建产生随机数的对象  *      2.创建一个存储随机数的集合  *      3.定义统计变量,从0开始,是否小于10  *       是 : 先产生一个随机数,判断该随机

0-1之间的随机数 C/C++

先贴代码(小数点后6位) vc6.0测试 #include "stdafx.h" #include <time.h> #include <stdlib.h> int main(int argc, char* argv[]) { double d = 0.0; int nCount = 0; srand((int)time(0)); for(int x=0;x<1000;x++){ d=((double)rand())/RAND_MAX; if (d>

平均要取多少个(0,1)中的随机数才能让和超过1

先用程序估算一下 from __future__ import division import random N = 1000000 sums = 0 for i in range(N): count = 0 s = 0 while 1: s += random.random() count += 1 if s > 1: sums += count break print sums / N 三次给出的结果分别是 2.716957 2.718334 2.71885 2.718不就是e的味道吗,下面

如何计算任意值之间的随机数呢

大家知道怎么计算1到10之间的随机数吗,下面听我道来, 首先:Math.random()这个方法就是计算随机数的返回大于等于0小于1的随机数, Math.random()*10岂不是返回大于等于0返回小于10吗,但是他只能返回小于10的数,不能返回10,怎么办呢,我们在原来的函数上再加1就变成了Math.random()*10+1;此时就可以返回1到10的随机数了,但是我们返回的很多是小数,不符合要求,下面就用到了Math.floor()这个函数了,这个函数执行向下舍入,也就是说10.99经过M