Java和C的随机数(Random)详解

目录
  • 一、前言
  • 二、随机数的创建步骤
    • 1.导包
    • 2.创建对象:
    • 3.数据接收
  • 三、Java随机数游戏
  • 四、 c语言的猜数字示例图:
  • 总结

一、前言

前面我们学习了Java中的运算符,对运算符也有一些了解了,现在我们来学习一个

新的但且非常有意思的---随机数,随机数的用处在生活中比较少见,但是用处并不少,

比如一些小游戏的制作等等。

二、随机数的创建步骤

1.导包

所谓导包就是在Java中已经定义好的文件,我们直接引用过来即可

随机数导包:

import java.util.Random;

2.创建对象:

其实创建对象就是在开辟内存空间

随机数创建对象:

Random d=new Random(); 其中d是任意起的变量名,其余形式格式固定

3.数据接收

数据接收就是创建一个变量去接受产生的随机数。

接受随机数:

int num=d.nextInt;其中d是上面开辟空间的变量名

三、Java随机数游戏

这个我是加了一些其他功能,简洁的猜数字可以很短(手动🐕头)

代码:

package com;
import java.util.Random;//导入随机数包
import java.util.Scanner;//导入输入包
public class 猜数字游戏 {
    public static void main(String[] args) {
        Scanner ss=new Scanner(System.in);//创建对象
        猜数字游戏 c=new 猜数字游戏();//创建对象
         c.menu();//打印菜单
        System.out.print("请选择");
        int input=ss.nextInt();//接收输入的数字
        switch(input){
            case 0:{
                System.out.println("退出游戏");return;
            }
            case 1:{
                c.game();break;
            }
            default:{
                System.out.println("输入错误");
            }
        }
    }
        public static void menu(){
            System.out.println("********************************");
            System.out.println("*********1.开始游戏**************");
            System.out.println("*********0.退出游戏**************");
            System.out.println("********************************");
    }
    public static void game(){
        Random d=new Random();//创建随机数对象
        Scanner sc=new Scanner(System.in);//创建输入对象
        int i=d.nextInt(100)+1;//接受产生的随机数,设置范围在1-100
        System.out.print("请输入你猜的数字");
        int count=0;//创建一个变量去计猜了几次
        while(true){
            count++;
            int shu=sc.nextInt();//接收输入的数字
            if(shu>i){
                System.out.print("猜大了***第"+(count+1)+"次猜");
            }
            else if(shu<i){
                System.out.print("猜小了***第"+(count+1)+"次猜");
            }
            else  {
                System.out.println("***恭喜你***猜对了****\n一共猜了"+count+"次!!!"); break;
            }
        }
    }
}

演示图:

四、 c语言的猜数字示例图:

代码:

#define  _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void menu()
{
	printf("******************************************\n");
	printf("********1.开始游戏************************\n");
	printf("*********0.退出游戏***********************\n");
	printf("******************************************\n");
}
void game()
{
	int sum = 0;
	int guess = 0;
	int count = rand() % 100+ 1;
	printf("请输入你猜的数字\n");
	while (1)
	{    sum++;
		scanf("%d", &guess);
		if (guess > count)
		{
			printf("猜大了,第%d次猜\n", sum+1);
		}
		else if (guess < count)
		{
			printf("猜小了 ,第%d次猜\n",sum+1);
		}
		else
		{
			printf("猜对了,一共猜了%d次\n",sum); break;
		}
		if (sum >= 8)
		{
			printf("\n不行啊还没猜对,答案是%d\n", count);
		}
	}
}
int main()
{
	int a = 0;
	srand((unsigned int)time(NULL));
	do{
		menu();
		printf("请选择");
		scanf("%d", &a);
		switch (a)
		{
		case 1:
			game(); break;
		case 0:
			printf("退出游戏");
		default:
			printf("输入错误,重新输入"); break;
		}
	} while (a);
	system("pause");
	return 0;
}

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • java使用多线程找出最大随机数

    本文实例为大家分享了java用多线程找出最大随机数的具体代码,供大家参考,具体内容如下 问题: 系统随机生成 10000 个数,构造 5 个线程并利用它们的 Join 方法计算这些随机数的最大值. 思路: 1).定义一个全局变量AllMax来记录在最大值 2).自定义myThread类继承自Thread,重写run函数. 3).Run函数,循环两千次,每次产生一个10000以内的随机数,与AllMax进行比较,若大于AllMax,则立即将AllMax更新. 4).实例化MyThread,创建五个

  • Java生成的随机数靠谱吗?多少次会重复?

    一.前言 本文基于JDK1.8 最近在项目中碰到一个做订单号的需求,甲方的意思是以字母开头,后边跟年份和6位流水号. 我第一反应就是流水号用随机数生成,突然就想到一个问题,Java的随机数真的靠谱吗?六位数大概是十万级别,Java可以保证一万次不重复吗?带着疑问,我通过三种生成随机数的方式做了三个测试. 二.利用Math.random()生成六位随机数测试 List<Integer> list=new ArrayList<>(); //记录计算次数 Long count=0L; /

  • Java中生成随机数的4种方式与区别详解

    目录 在 Java 中,生成随机数的场景有很多,所以本文我们就来盘点一下 4 种生成随机数的方式,以及它们之间的区别和每种生成方式所对应的场景. 1.Random Random 类诞生于 JDK 1.0,它产生的随机数是伪随机数,也就是有规则的随机数.Random 使用的随机算法为 linear congruential pseudorandom number generator (LGC) 线性同余法伪随机数.在随机数生成时,随机算法的起源数字称为种子数(seed),在种子数的基础上进行一定的

  • JAVA使用随机数实现概率抽奖

    本文实例为大家分享了JAVA使用随机数实现概率抽奖的具体代码,供大家参考,具体内容如下 需求 网站现有一抽奖功能,已经定义好奖品,每个奖品都有对应的中奖概率.通过奖品概率随机进行抽奖 实现思路 1.每个奖品都有对应的中奖概率,先对所有奖品中奖概率求和 2.计算出每个奖品在0-1之间所占的区间块 3.随机产生0-1之间的随机数,随机数落在哪个区间,就是中奖哪个 例如现有以下奖品: 奖品A 中奖概率为 0.1 奖品B 中奖概率为 0.01 奖品C 中奖概率为 0.001 奖品D 中奖概率为 0.8

  • java的三种随机数生成方式

    目录 第一种 第二种 第三种 随机数的产生在一些代码中很常用,也是我们必须要掌握的.而java中产生随机数的方法主要有三种: 第一种:new Random() 第二种:Math.random() 第三种:currentTimeMillis() 第一种 第一种需要借助java.util.Random类来产生一个随机数发生器,也是最常用的一种,构造函数有两个,Random()和Random(long seed).第一个就是以当前时间为默认种子,第二个是以指定的种子值进行.产生之后,借助不同的语句产生

  • java高并发情况下高效的随机数生成器

    前言 在代码中生成随机数,是一个非常常用的功能,并且JDK已经提供了一个现成的Random类来实现它,并且Random类是线程安全的. 下面是Random.next()生成一个随机整数的实现: protected int next(int bits) { long oldseed, nextseed; AtomicLong seed = this.seed; do { oldseed = seed.get(); nextseed = (oldseed * multiplier + addend)

  • Java和C的随机数(Random)详解

    目录 一.前言 二.随机数的创建步骤 1.导包 2.创建对象: 3.数据接收 三.Java随机数游戏 四. c语言的猜数字示例图: 总结 一.前言 前面我们学习了Java中的运算符,对运算符也有一些了解了,现在我们来学习一个 新的但且非常有意思的---随机数,随机数的用处在生活中比较少见,但是用处并不少, 比如一些小游戏的制作等等. 二.随机数的创建步骤 1.导包 所谓导包就是在Java中已经定义好的文件,我们直接引用过来即可 随机数导包: import java.util.Random; 2.

  • Java中Math类常用方法代码详解

    近期用到四舍五入想到以前整理了一点,就顺便重新整理好经常见到的一些四舍五入,后续遇到常用也会直接在这篇文章更新... public class Demo{ public static void main(String args[]){ /** *Math.sqrt()//计算平方根 *Math.cbrt()//计算立方根 *Math.pow(a, b)//计算a的b次方 *Math.max( , );//计算最大值 *Math.min( , );//计算最小值 */ System.out.pri

  • Java实现猜数字小游戏详解流程

    猜数字游戏 系统自动生成一个随机整数(1-100), 然后由用户输入一个猜测的数字. 如果输入的数字比该随机数小, 提示 "低 了", 如果输入的数字比该随机数大, 提示 "高了" , 如果输入的数字和随机数相等, 则提示 "猜对了 整理思路 1. 我们玩游戏的时候,都有开始游戏和退出游戏 2. 其次,它要生成一个随机数,如果是固定值,哪有什么意思? 3. 再者,我们要输入数字,根据它反馈的情况进行判断和猜测数字的大小 4. 但是我们不可能说一次就判断成功

  • Java并发编程总结——慎用CAS详解

    一.CAS和synchronized适用场景 1.对于资源竞争较少的情况,使用synchronized同步锁进行线程阻塞和唤醒切换以及用户态内核态间的切换操作额外浪费消耗cpu资源:而CAS基于硬件实现,不需要进入内核,不需要切换线程,操作自旋几率较少,因此可以获得更高的性能. 2.对于资源竞争严重的情况,CAS自旋的概率会比较大,从而浪费更多的CPU资源,效率低于synchronized.以java.util.concurrent.atomic包中AtomicInteger类为例,其getAn

  • Java AtomicInteger类的使用方法详解

    首先看两段代码,一段是Integer的,一段是AtomicInteger的,为以下: public class Sample1 { private static Integer count = 0; synchronized public static void increment() { count++; } } 以下是AtomicInteger的: public class Sample2 { private static AtomicInteger count = new AtomicIn

  • java仿Servlet生成验证码实例详解

    java仿Servlet生成验证码实例详解 实现原理:使用BufferedImage对象的Graphics来进行绘制,然后输出成一张图片进行保存 实现代码及详解: public class validateCode{ private static Random rand = new Random(); public static void main(String[] args){ int val1 = rand.nextInt(9); int val2 = rand.nextInt(9); in

  • Java 文件上传的实例详解

    Java 文件上传的实例详解 java 文件上传 Java文件上传,介绍几种常用的方法,也是经过本人亲手调试过的 1.jspsmartupload 这个组件用起来是挺方便的,不过就是只适合小文件上传,如果大文件上传的话就不行,查看了一下他的代码,m_totalBytes = m_request.getContentLength(); m_binArray = new byte[m_totalBytes];居然把整个上传文件都读到内存去了,那如果是上传几十M的文件,同时几个用户上传,服务器稳挂,不

  • java集合框架线程同步代码详解

    List接口的大小可变数组的实现.实现了所有可选列表操作,并允许包括null在内的所有元素.除了实现List接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小.(此类大致上等同于Vector类,除了此类是不同步的.)size.isEmpty.get.set.iterator和listIterator操作都以固定时间运行.add操作以分摊的固定时间运行,也就是说,添加n个元素需要O(n)时间.其他所有操作都以线性时间运行(大体上讲).与用于LinkedList实现的常数因子相比,此实现的

  • Java中 % 与Math.floorMod() 区别详解

    %为取余(rem),Math.floorMod()为取模(mod) 取余取模有什么区别呢? 对于整型数a,b来说,取模运算或者取余运算的方法都是: 1.求 整数商: c = a/b; 2.计算模或者余数: r = a - c*b. 区别是: 取余运算在计算商值向0方向舍弃小数位 取模运算在计算商值向负无穷方向舍弃小数位 比如a=4,b=-3时,a/b = -1.3333... 此时,取余c=1,取模c=-2 (%在不同语言中有不同的意义,比如Java或者c/c++中%为取余,python中%则为

  • Java map.getOrDefault()方法的用法详解

    Map.getOrDefault(Object key, V defaultValue)方法的作用是: 当Map集合中有这个key时,就使用这个key值: 如果没有就使用默认值defaultValue. 代码示例如下: HashMap<String, String> map = new HashMap<>(); map.put("name", "cookie"); map.put("age", "18"

随机推荐