java实现抽奖功能解析

本文实例为大家分享了java实现抽奖功能的具体代码,供大家参考,具体内容如下

抽一个:

输入抽奖人数,生成随机数字进行抽奖。
比如:楼主抽幸运儿送游戏,选择前100楼抽取一个幸运儿。

import java.util.Random;
import java.util.Scanner;

public class Gift {
 public static void main(String[] args) {

  Scanner sc = new Scanner(System.in);
  System.out.println("请您输入抽奖人数:");
  int n = sc.nextInt();
  Random r1 = new Random();
  System.out.println("幸运儿是:"+(r1.nextInt(n)+1));

 }
}

抽多个:

输入抽奖人数以及中奖人数,生成随机数字进行抽奖。

比如:楼主抽幸运儿送游戏,选择前100楼抽取多个个幸运儿。

注:下面代码还未解决 抽到相同序号 的问题

import java.util.Random;
import java.util.Scanner;

public class Gift {
 public static void main(String[] args) {

  Scanner sc = new Scanner(System.in);
  System.out.print("请您输入抽奖人数:");
  int n = sc.nextInt();
  System.out.print("请您输入中奖人数:");
  int num;

  // 判断中奖人数是否符合规则
  while (true) {
   num = sc.nextInt();
   if (n < num) {
    System.out.println("中奖人数 > 抽奖人数,不符合规则。");
    System.out.print("\n请重新输入中奖人数:");

   } else
    break;
  }
  System.out.println("");
  // 创建一个整型数组,来存放抽取的多个幸运儿,来限制不能出现相同序号的幸运儿。
  int[] lucky = new int[num];
  Random r1 = new Random();
  for (int i = 0; i < num; i++) {
   while (true) {
    int luckyMan = r1.nextInt(n) + 1;
    lucky[i] = luckyMan;
    int j = 1;
    if (i == 0) {
     System.out.println("幸运儿是:" + luckyMan);
     break;
    }
    else{
     // 要不等于前面所有的 即 3!=2 && 3!=1 && 3!=0
     if (lucky[i] != lucky[i-1]){
      System.out.println("幸运儿是:"+luckyMan);
      break;
     }
    }
   }
  }
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Java抽奖算法第二例

    本文实例为大家分享了java抽奖算法,供大家参考,具体内容如下 1. 算法分析  根据概率将奖品划分区间,每个区间代表一个奖品,然后抽取随机数,反查落在那个区间上,即为所抽取的奖品. 2. 代码 核心算法 public class Arithmetic { // 放大倍数 private static final int mulriple = 1000000; public int pay(List<Prize> prizes) { int lastScope = 0; // 洗牌,打乱奖品次

  • Java抽奖抢购算法

    本文示例为大家分享了Java抽奖抢购算法,供大家参考,具体内容如下 应用场景 单件奖品抢购(可限时) 多件奖品按概率中奖(可限时.可不限量) 代码实现 表结构: --抽奖设置 create table AWARD_INFO ( ID NUMBER(11) not null, ACT_ID NUMBER(11), --活动ID NUM NUMBER(11), --奖品总量(0为不限量) REST NUMBER(11), --奖品余量 ODDS NUMBER(11) default 0, --中奖概

  • 基于Java实现抽奖系统

    本次任务要求为某商场开发一套幸运抽奖系统,客户必须首先注册成为该商场会员,会员登录成功后,就可以参加抽奖活动了. 注册 用户选择"注册"菜单,进入注册界面.输入用户名和密码后,系统提示注册成功,并给出会员卡号. 登录 注册成功后,用户选择"登录"菜单,进入登录界面.输入注册时的用户名和密码.登录成功,系统提示欢迎信息.如果用户和密码输入错误,提示用户继续输入,最多有3次机会. 抽奖 登录成功后,用户选择"抽奖"菜单,进入幸运抽奖界面.输入会员卡号

  • Java实现双色球抽奖随机算法示例

    第一次写技术博客,写一下以前写的一个双色球抽奖随机算法. 原理如下: 1首先初始化一个待抽奖的数组nums,数组的长度k 2. 随机一个1-k之间的随机数,得到nums[k],这样得到第一个抽奖号,nums中剔除该号码,k--. 3. 重复步骤2,直到得到全部中奖号码 class myLuck { private int mTarget; List<Integer> mNums = new ArrayList<Integer>(); //摇奖池 ///从多少个数中产生多少个数 //

  • 纯java代码实现抽奖系统

    本文实例为大家分享了java实现抽奖系统 的具体代码,供大家参考,具体内容如下 模拟一个在终端登陆注册的页面 public class Cjtest { public static void main(String[] args) { String isGoOn = "n"; //循环的判断条件是否继续 do { System.out.println("*********幸运52********"); System.out.println("1.注册&qu

  • Java简易抽奖系统小项目

    本文实例为大家分享了Java简易抽奖系统的具体代码,供大家参考,具体内容如下 需求: 实现一个抽奖系统 1 注册 2 登录 3 抽奖 必须先注册  再登陆  再抽奖 随机产生4个随机数作为幸运卡号 用户注册后 登录的时候  用户名密码输入判断只有三次机会 需要做到  还有2次   还有1次  三次输入错误 不能再登录 产生10个随机数  将用户注册得到的随机数作为判断 代码如下: import java.util.*; public class Homeworktest { public sta

  • Java实现按比抽奖功能

    需求是要做几个小游戏的抽奖功能,需要根据不同的游戏有不同的抽奖规则,其中也有很多共性,可归纳为只按奖品占比抽取.奖品占比与奖品数量抽取.分段抽取,为方便起见将这些的抽奖的规则统一封装到了工具类中.抽奖的核心逻辑使用的叫做离散算法实现的. 一.概述 使用离散算法即根据奖品占比进行分段,然后再产生随机数匹配所对应的区间. 首先定义Prize奖品实体类,类中有prizeName(奖品名称).prizeWeight(奖品比重).prizeCount(奖品数量)属性,下面是核心的代码: /** * 按比例

  • APP转盘抽奖Java服务端接口详解

    应公司需求开发一个微信公众号中抽奖活动 功能:奖品及中奖概率可在后台配置,滚动刷新中奖名单,控制用户每日抽奖次数等. 规则:在活动期间,每日可抽奖一次,中奖后填写个人信息以便奖品的配送. 1.获取抽奖页面数据 /** * 获取抽奖页面数据 * @param request * @param response * @return * @throws ServletException * @throws IOException */ @RequestMapping(value="/queryLott

  • 简单实现java抽奖系统

    本文为大家分享了java抽奖系统的具体代码,供大家参考,具体内容如下 用户信息类 /* * 用户信息类 * 1.账号 * 2.密码 * 3.卡号 * 4.是否登录 */ public class User { public static String userName = ""; public static String passWord = ""; public static int cardNumber = 0; // 是否登录 public static bo

  • java实现幸运抽奖系统

    本文实例为大家分享了java实现抽奖系统的具体代码,供大家参考,具体内容如下 import java.util.Scanner; public class luckyDraw { public static void main(String[] args) { String option; String username = ""; int password = 0; int cardNumber = 0; int max = 9999; int mix = 1000; do { Sy

随机推荐