package com.chinatricon.spring;import java.util.ArrayList;import java.util.HashSet;import java.util.Iterator;import java.util.Set;/** * 要求: * 1 每次取一个,共取4次,4次组成一个4位数,拼起来为Set中的数 * 2 每次取数,Set中的每个数都有相同的机会 */public class LuckyGetter {public Set set = new HashSet();public static void main(String[] args) {// 初始化SetLuckyGetter getter = new LuckyGetter();getter.initSet(getter.set);// 取数long start = System.currentTimeMillis();for (int i = 0; i < 2000; i++) {System.out.println(getter.getRandom());}long end = System.currentTimeMillis();System.out.println(end - start);}public int getRandom() {int num = 0;for (int i = 0; i < 4; i++) {num = getNext(num);}return num;}/** * 1 如果num为0,返回千位 * 2 如果num为1位,返回千位和百位,以此类推 */public int getNext(int num) {if (num < 0 || num > 9999) {return 0;}int nextNum = 0;// 请把您的代码填写在这里nextNum = test2(num);return nextNum;}public void initSet(Set set) {set.add(1235);set.add(1236);set.add(1245);set.add(1248);set.add(1366);set.add(1369);set.add(1382);set.add(1384);set.add(2235);set.add(2236);set.add(2245);set.add(2248);set.add(2366);set.add(2369);set.add(2382);set.add(2384);set.add(8514);}public int test(int num) {ArrayList list = new ArrayList();for (Iterator it = set.iterator(); it.hasNext();) {Integer number = it.next();if (number / 10000 == num) {list.add(number / 1000);} else if (number / 1000 == num) {list.add(number / 100);} else if (number / 100 == num) {list.add(number / 10);} else if (number / 10 == num) {list.add(number);}}return list.get((int) (Math.random() * list.size()));}public int test2(int num) {ArrayList list = new ArrayList();for (Iterator it = set.iterator(); it.hasNext();) {String number = String.valueOf(it.next());if (number.startsWith(String.valueOf(num))) {list.add(Integer.parseInt(number.substring(0, String.valueOf(num).length() + 1)));} else if (num == 0) {list.add(Integer.parseInt(number.substring(0, 1)));}}return list.get((int) (Math.random() * list.size()));}}
java取一个四位数的每个_java等概率的抽取一个四位数2
最新推荐文章于 2022-09-19 11:22:10 发布