자바 시 뮬 레이 션 구현 위 챗 보너스 알고리즘
실현 과정
1.코드 는 다음 과 같다(예시).
import java.math.BigDecimal;
import java.util.ArrayList;
public class GenRedPacket {
static ArrayList<BigDecimal> list = new ArrayList<BigDecimal>();;
public static BigDecimal bianLiJia(ArrayList<BigDecimal> list) {
BigDecimal b = new BigDecimal("0");
for (int i = 0; i < list.size(); i++) {
b = b.add(list.get(i));
}
return b;
}
public static void bianLiJian(BigDecimal b1, BigDecimal b2) {
if (bianLiJia(list).doubleValue() < b1.doubleValue()) {
BigDecimal b3 = bianLiJia(list);
BigDecimal b4 = b1.subtract(b3);
int i = 0;
list.set(i = (int) (Math.random() * (b2.intValue())), list.get(i).add(b4));
} else if (bianLiJia(list).doubleValue() > b1.doubleValue()) {
BigDecimal b3 = bianLiJia(list);
BigDecimal b4 = b3.subtract(b1).divide(b2, 2, BigDecimal.ROUND_FLOOR);
for (int i = 0; i < list.size(); i++) {
if (list.get(i).doubleValue() > b4.doubleValue()) {
list.set(i, list.get(i).subtract(b4));
}
}
}
if (bianLiJia(list).doubleValue() > b1.doubleValue()) {
BigDecimal b3 = bianLiJia(list);
BigDecimal b4 = b3.subtract(b1);
for (int i = 0; i < list.size(); i++) {
if (list.get(i).doubleValue() > b4.doubleValue()) {
list.set(i, list.get(i).subtract(b4));
}
}
bianLiJian(b1, b2);
}
}
public static ArrayList<BigDecimal> genRedPacket(String total, int count) {
BigDecimal b1 = new BigDecimal(total);
BigDecimal b2 = new BigDecimal(count);
for (int i = 0; i < count; i++) {
String s = String.valueOf(((int) (Math.random() * (Integer.parseInt(total) + 1)))
+ ((int) (Math.random() * 100) + 1) / 100.0);
BigDecimal b3 = new BigDecimal(s);
list.add(b3);
}
bianLiJian(b1, b2);
return list;
}
public void fhb(String total, int count) {
genRedPacket(total,count);
int i = 1;
for(BigDecimal b:list) {
System.out.println(" "+i+" :"+b+" ");
i++;
}
}
}
2.코드 는 다음 과 같다(예시).
import java.text.ParseException;
import java.util.Scanner;
public class Test {
public static void main(String[] args) throws ParseException {
Scanner scanner = new Scanner(System.in);
GenRedPacket dp = new GenRedPacket();
System.out.print(" :");
String s1 = scanner.next();
int a1 = scanner.nextInt();
dp.fhb(s1, a1);
}
}
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.