할 일이 없으며 최근에 현금 빨간 봉투를 발견하기 위해 홈페이지에 사용자 로그인을 기록해야하며 제한이 없습니다. 제한이있는 경우 작성 방법을 계산했습니다. 나는 이것이 Wechat 빨간 봉투와 비슷하다고 생각합니다. 프로젝트 요구 사항이 완료된 후 나는 내가 쓴 빨간 봉투 제거 알고리즘을 게시했다. 나는 개인적 으로이 알고리즘이 실제 레드 엔벨로프 횡단 규칙을 더 시뮬레이션한다고 생각합니다. 넌센스를 덜 말하십시오. 코드를 먼저 게시하십시오.
import java.math.bigdecimal; import java.util.arraylist; import java.util.collections; import java.util.list; import java.util.random; public static void main (String [] args) {for (int i = 0; i <10; i ++) {big <++) 수학 (bigdecimal.valueof (10), 6); if (moneys! = null) {bigdecimal b = new bigdecimal (0); for (bigdecimal bigdecimal : moneys) {system.out.print (bigdecimal + "yuan"); b = B.add (bigdecimal); } system.out.print ( "총 금액 :" + b + "yuan"); System.out.println (); }}} /*** 각 사람이받은 빨간 봉투의 양을 계산합니다. 1 인당 최소한의 빨간 봉투는 1 인당 0.01 위안입니다. } random random = new random (); // 돈, 10 위안은 1000 포인트와 같은 분수로 계산됩니다. int money = mmmm.multiply (bigdecimal.valueof (100)). intvalue (); // 총 무작위 번호 이중 카운트 = 0; // 각 사람은 무작위 점을 얻습니다. Double [] Arrrandom = New Double [Number]; // 각 사람이 돈 목록을받습니다 <Bigdecimal> arrmoney = new ArrayList <BigDecimal> (번호); // (int i = 0; i <arrrandom.length; i ++) {int r = random.nextInt ((번호) * 99)+1; count += r; Arrrandom [i] = r; } // 빨간 봉투 int c = 0을 열어 각 사람이 얻은 양을 계산합니다. for (int i = 0; i <arrrandom.length; i ++) {// 각 사람의 백분율을 계산하여 2 배 x = 새로운 더블 (Arrrandom [i] / count); // 각 사람은 각 사람이 얻은 금액을 int M = (int) math.floor (x * money) 백분율별로 얻습니다. // 0 금액이 얻어지면 (m == 0) {m = 1 인 경우 최소값 1 센트를 설정하십시오. } // 총 금액 C += M을 계산합니다. // 마지막 사람이 아닌 경우 (i <arrrandom.length -1) {arrmoney.add (new bigdecimal (m) .divide (new bigdecimal (100))); } else {// 마지막 사람이라면 마지막 사람에게 남은 돈을 arrmoney.add (New Bigdecimal (Money -C + M) .divide (New Bigdecimal (100))에게 제공합니다. }} // 각 개인 컬렉션에서 얻은 금액을 무작위로 방해합니다. Arrmoney를 반환하십시오. }}이 코드 세트의 사고 논리 :
1. 우선, 우리는 레드 봉투 금액을 사람의 수에 따라 가보다 평균 가치로 인해 N 주로 나누어야합니다. 각 사람이 너무 균등하게 득점하면 재생할 수있는 것 같습니다.
2. 둘째, 우리는 어떻게 구별해야합니까? 빨간 봉투를 재생할 수 있도록합니다. 사실, 나는이 문제를 생각하지 않습니다. 결국, 빨간 봉투는 운에만 의존합니다. 나는 20 위안과 3 명 포인트를 위해 Wechat Red Envelopes를 연주하는 데 운이 좋았습니다. 나는 또한 0.01 위안을 얻었다. 동시성도 매우 클 것입니다. 따라서 내 코드 세트는 단순히 모든 사람을 임의의 숫자 (임의 숫자 범위는 사람의 수 * 100)를 내놓고,이 사람들의 랜덤 숫자를 함께 추가하고 각 사람의 임의 숫자의 백분율을 계산합니다. 이 비율에 따라 배당금을 분배하십시오.
위는 편집기가 소개 한 Java 구현 간단한 빨간 봉투 잡기 알고리즘 (실제 빨간 봉투 잡기 시뮬레이션)입니다. 모든 사람에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 모든 사람에게 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!