首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将值分裂成两个随机数

将值分裂成两个随机数
EN

Stack Overflow用户
提问于 2017-04-17 01:19:31
回答 1查看 220关注 0票数 0

我正在Java中创建一个随机的图书目录,我打算将一个图书包的随机生成的价格值分成两个单独的值(表示两本书的各个包)。

就像。随机生成的图书包42售价为80美元,其中两本书的单独价格为$X和$Y。

代码语言:javascript
复制
public class MultiAgent {

int maxBookID = 50;
int maxBookPrice = 100;
int maxNumItems = 50;

void buildCatalogue() {

    int numItems = rand.nextInt(maxNumItems);
    while (bookCatalogue.size() < numItems) {
        int ranID = rand.nextInt(maxBookID);
        bookCatalogue.put(String.valueOf(ranID), rand.nextInt(maxBookPrice));

    }

    for (Object key : bookCatalogue.keySet()) {

System.out.println("Package ID: " + (String) key + "; price value: " + bookCatalogue.get(key)); //The individual values of the two books should print here
    }

}
}

如何将生成的价格值分成两个随机值?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-17 01:23:58

float0.0之间生成一个1.0

代码语言:javascript
复制
float r = rand.nextFloat();

用它来分割你的价值:

代码语言:javascript
复制
float priceBook1 = packagePrice * r;
float priceBook2 = packagePrice * (1-r);

示例/说明

假设packagePrice100r最终成为0.4

代码语言:javascript
复制
priceBook1 = 100 * 0.4;      // 40
priceBook2 = 100 * (1-0.4);  // 60 

但是,请注意,其中一本书可能最终不会花费任何费用(在r0.0的情况下)。如果您想防止这种情况发生,只需查看问题的几个可用问题/答案中的一个,例如https://stackoverflow.com/questions/9723765/generating-a-random-double-number-of-a-certain-range-in-java

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43443910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档