> Java > java지도 시간 > 본문

Java WeChat 빨간 봉투 구현 알고리즘에 대한 자세한 소개

黄舟
풀어 주다: 2017-03-07 10:33:17
원래의
1851명이 탐색했습니다.

이 글에서는 주로 Java WeChat 빨간 봉투 구현 알고리즘을 자세히 소개하고 관심 있는 친구들이 참고할 수 있는 빨간 봉투의 핵심 알고리즘을 나열합니다.

현재 마이크로 WeChat은 점점 대중화되면서 점점 더 많은 사람들이 위챗을 공부하고 있습니다. 얼마 전 우리 회사에서는 위챗 공개 계정에 설문 조사와 빨간 봉투 기능을 만들어 달라고 요청한 끝에 해당 기능이 완성되었습니다. 주요 구현 단계는 모두 WeChat 공개 계정 개발 문서를 기반으로 하며 전체 과정에서 빨간 봉투 알고리즘만 신중하게 작성하면 됩니다. 결국 돈이 관련되므로 주의해야 합니다. WeChat에서 빨간 봉투를 보내야 할 뿐만 아니라, APP를 만들 때 빨간 봉투를 보내는 기능도 접할 수 있습니다. 따라서 모두가 함께 공부하고 공부할 수 있도록 빨간 봉투의 핵심 알고리즘이 여기에 나열되어 있습니다.

public static List getRed(int number,float total,double min){
  //红包数 
  //int number = 300; 
  //红包总额 
 // float total = 500; 
  float money; 
  //最小红包 
  //double min = 0.48; 
  double max; 
  int i = 1; 
  List math = new ArrayList(); 
  DecimalFormat df = new DecimalFormat("###.##"); 
  while (i < number) { 
  //保证即使一个红包是最大的了,后面剩下的红包,每个红包也不会小于最小值 
  max = total - min * (number - i); 
  int k = (int)(number - i) / 2; 
  //保证最后两个人拿的红包不超出剩余红包 
  if (number - i <= 2) { 
   k = number - i; 
   } 
  //最大的红包限定的平均线上下 
  max = max / k; 
  //保证每个红包大于最小值,又不会大于最大值 
  money = (int) (min * 100 + Math.random() * (max * 100 - min * 100 + 1)); 
  money = (float)money / 100; 
  //保留两位小数 
  money = Float.parseFloat(df.format(money)); 
  total=(int)(total*100 - money*100); 
  total = total/100; 
  math.add(money); 
  System.out.println("第" + i + "个人拿到" + money + "剩下" + total); 
  i++; 
  //最后一个人拿走剩下的红包 
  if (i == number) { 
   math.add(total); 
   System.out.println("第" + i + "个人拿到" + total + "剩下0"); 
   } 
  }
  //取数组中最大的一个值的索引 
  System.out.println("本轮发红包中第" + (math.indexOf(Collections.max(math)) + 1) + "个人手气最佳");
 return math; 
  }
로그인 후 복사

위 내용은 Java WeChat 빨간 봉투 구현 알고리즘에 대한 자세한 소개입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www. php.cn)!


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿