1. 编写双色球 红球一共6组,每组从1-33中抽取一个,6个互相不重复。 蓝球是从1-16中抽取1个数字,这整个组成双色球。
代码如下:
/*
* Copyright (c) 2020, 2023, 3044483124@qq.com All rights reserved.
*
*/
package cn.itcast;
import java.util.*;
/**
* <p>Project: JavaStudy - ColorBall
* <p>Powered by jiangbo On 2023-01-03
* 09:56:23
* <p>Created by IntelliJ IDEA
*
* @author jiangbo [3044483124@qq.com]
* @version 1.0
* @since 8/17
*/
public class ColorBall {
public static void main(String[] args) {
Random rand = new Random();
int i = 0;
while(i<10) {
//蓝色球(1-16 选出1个)
int blue = rand.nextInt(1, 17);
//红色球(1-33 选出不重复的6个)
Set<Integer> red = new HashSet<>();
while (red.size() < 6) {
red.add(rand.nextInt(1, 34));
}
List<Integer> rr = new ArrayList<Integer>(red);
Collections.sort(rr);
//System.out.println(rr);
//System.out.println(blue);
List ok = new ArrayList();
ok.add(rr);
ok.add(blue);
System.out.println(ok);
++i;
}
}
}
结果如下:
2. 编写程序求123456789之间随机位置放加减,使表达式的和为100,求出这样的表达式。(有11个表达式)
代码如下:
/*
* Copyright (c) 2020, 2023, 3044483124@qq.com All rights reserved.
*
*/
package cn.itcast;
import java.util.HashSet;
import java.util.Random;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* <p>Project: JavaStudy - Sum10
* <p>Powered by jiangbo On 2023-01-03
* 10:02:01
* <p>Created by IntelliJ IDEA
*
* @author jiangbo [3044483124@qq.com]
* @version 1.0
* @since 8/17
*/
public class Sum100 {
public static void main(String[] args) {
Set<String> set = new HashSet<String>();
while (set.size() != 11) {
String str = getStr();
if (sum(str) == 100) {
set.add(str);
}
}
//计算完成之后输出
for (String s : set) {
System.out.printf("%s = 100%n", s);
}
}
public static int sum(String str) {
int sum = 0;
Pattern pattern = Pattern.compile("-?\\d+");
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
sum += Integer.parseInt(matcher.group());
}
return sum;
}
public static String getStr() {
Random rand = new Random();
StringBuilder sbu = new StringBuilder();
String[] ops = {"", "+", "-"};
for (int i = 1; i < 9; i++) {
sbu.append(i + ops[rand.nextInt(ops.length)]);
}
sbu.append(9);
return sbu.toString();
}
}
结果如下: