`

随机分配算法(Intege)

    博客分类:
  • Java
阅读更多
参考资料:
http://blog.csdn.net/yaerfeng/article/details/18362623
http://www.zuidaima.com/code/file/2214023444104192.htm?dir=/2214023444104192.java
以下为抢红包的随机分配的Integer实现,主要参考以:抢红包的随机分配红包算法

/**
     * 根据分配数值随机分配到N个,总和等于:allotRange
     * @param allolTotal 分配的总和
     * @param allotSize 分配大小
     * @param allotMinVal 分配最小值
     * @return
     */
    public static Iterator<Integer> allot(int allolTotal, int allotSize, int allotMinVal) {

        List<Integer> randoms = new ArrayList<Integer>(allotSize);

        for (int i = 0; i < allotSize; i++) {

            int safe_total = (allolTotal - (allotSize - i) * allotMinVal) / (allotSize - i);

            int random = new Random().nextInt(safe_total - allotMinVal) + allotMinVal;
            if (random < allotMinVal) {
                random = allotMinVal;
            }
            if (i == allotSize - 1) {
                random = allolTotal;
            }

            allolTotal -= random;
            randoms.add(random);
        }
        return randoms.iterator();
    }
分享到:
评论

相关推荐

    前端开源库-max-safe-integer

    在前端开发中,JavaScript 是最常用的脚本语言之一,它在处理数字时有着特定的限制。"max-safe-integer" 这个开源库是针对JavaScript中的一个关键特性——最大安全整数(Max Safe Integer)而设计的。...

    Java数据类型及其转换详解

    Java 数据类型是编程的基础,它分为两种主要类别:简单类型(Primitive)和引用类型(Reference)。简单类型包括基本的数据结构,如整数、浮点数、字符和布尔值,它们在内存中直接存储值,而引用类型则指向内存中的...

    java基础教程301集225 int与Intege与Strin.mp4

    java基础教程301集225 int与Intege与Strin.mp4

    图片放大镜效果

    实现图片的放大镜效果的源码,欢迎下载! procedure TForm1.ImageCopy(BoxCenterX,BoxCenterY, BoxSide: Integer); begin with SourceRect do begin Left:=BoxCenterX-BoxSide; Top:=BoxCenterY-BoxSide;...

    2021-2022计算机二级等级考试试题及答案No.14113.docx

    【变量命名】在变量命名时,合法的变量名称是`x_1_y`,而`x 1`和`intege`以及包含逗号的`x , y`都是非法的。 【package声明】在Java源文件中,`package`声明应位于文件开头,用来指定源文件所属的包。 【我的电脑...

    java统计关键字个数

    通过args传参,读取文件,统计java代码中的关键字个数

    详解Java中int和Integer的区别

    Java 中 int 和 Integer 的区别 Java 作为一门面向对象的编程语言,具有两种基本数据类型:基本数据类型(primitive type)和引用类型(reference type)。在 Java 中,基本数据类型只有八个:boolean、char、byte...

    实验4 线程编程实验.doc

    线程池是指一个池子,里面存放着多个空闲线程,当有任务需要执行时,线程池就会分配一个空闲线程来执行任务。 5. 线程池的概念及应用 线程池是指一个池子,里面存放着多个空闲线程,当有任务需要执行时,线程池就...

    常用的JQuery数字类型验证正则表达式整理

    代码如下: var regexEnum = { intege:”^-?[1-9]//d*$”, //整数 intege1:”^[1-9]//d*$”, //正整数 intege2:”^-[1-9]//d*$”, //负整数 num:”^([+-]?)//d*//.?//d+$”, //数字 num1:”^([1-9]//d*|0)$”, //正数...

    muboard:基于虚拟网络的数学黑板,支持Markdown和LaTeX

    Muboard 是一个很小的实用程序,可以将数学显示板作为网页运行。 Muboard使您可以使用Markdown和LaTeX快速绘制数学代码段,同时在现实世界或虚拟会议中向其他人展示桌面屏幕。...For any positive intege

    2021-2022计算机二级等级考试试题及答案No.4252.docx

    6. 冒泡排序是一种简单的排序算法,通过不断交换相邻的不正确顺序元素来逐步排序。 7. Variant是VBScript等编程语言中的一种通用数据类型,可以存储多种数据类型,包括特殊值如Empty、Error和Null。 8. 数据库系统...

    2021-2022计算机二级等级考试试题及答案No.10261.docx

    7. 变量名称的规则中,`x_1_y` 是合法的,而 `x 1` 和 `intege` 有空格或拼写错误,`x , y` 包含非法字符逗号,因此 C 选项正确。 8. Java 语言的类间继承关系是单重的,一个类只能直接继承一个父类。 9. C++程序...

    2021-2022计算机二级等级考试试题及答案No.11253.docx

    计算机二级等级考试主要涵盖计算机基础知识、软件...以上是对计算机二级考试部分试题的解析,这些知识点涵盖了操作系统、数据库管理、编程语言基础、网络应用、数据结构和算法等方面,都是计算机二级考试的重点内容。

    2021-2022计算机二级等级考试试题及答案No.11304.docx

    2. 二叉树的中序遍历是一种遍历策略,题目中给出的二叉树中序遍历结果是DBEAF,这涉及到二叉树的遍历算法,包括前序遍历、中序遍历和后序遍历。 3. 只读存储器(ROM)是内存储器的一种,其特点是数据一旦写入就不能...

    2021-2022计算机二级等级考试试题及答案No.15750.docx

    选项B中的“intege”不是一个有效的单词,也不符合命名规则。选项C,“x_1_y”是一个合法的变量名,可以包含下划线。 5. 语句`int(*ptr)()`表示ptr是一个指针,它指向一个返回int类型数据的函数。这种语法常见于C/...

    Python中的Numpy矩阵操作

    Numpy 通过观察Python的自有数据类型,我们可以发现Python原生并不提供多维数组的操作,那么为了处理... It is a table of elements (usually numbers), all of the same type, indexed by a tuple of positive intege

    Maven.Quiz3-1

    测验3概述测验分为5个部分。 基本面VowelUtils StringUtils PigLatinGenerator困难数组SquareArrayAnalyzer ... Boolean isVowel(Character character) 如果character是a , e , i , o或u ,则返回true Intege

    JavaScript数值千分位格式化的两种简单实现方法

    在对数值进行格式化的时候,一个常见的问题是按照千分位格式化,网上对这个问题已经有很多种解决方法了,还可以利用Array.prototype.reduce方法来实现千分位格式化。 function formatNumber(num) { ... intege

    js正则表达式用法

    var intege = /^-?[1-9]\d*$/; ``` - **解释**: - `^-?`:允许数字前面有一个可选的负号。 - `[1-9]`:确保数字不是以0开头的。 - `\d*`:匹配0个或多个数字。 #### 示例2:匹配正整数 ```javascript var ...

Global site tag (gtag.js) - Google Analytics