【发布时间】:2015-08-20 00:31:39
【问题描述】:
例如:
我想把33.38分成5份,每份都等于或大于1.2:
2.71,3.3,18.7,1.56,7.11
伪代码中的函数:
public static void printRandomPartition(float value,int numberOfParts,float pMin){
}
public static void main(String[] args){
//it will print 2.71,3.3,18.7,1.56,7.11
printRandomPartition(33.38,5,1.2);
}
另一种情况:
将18.77分成3份,每份都等于或大于3.2:
4.8,9.55,4.42
当然输入输出也可以是3.82000000000003这样丑陋的float格式,只是举例而已。
我搜索了一些关于它的帖子,但似乎大多数都是关于整数的,并且整数中使用的方法通常使用数组 int myArray[n] (n是要被除的整数),这对于处理浮点数没有用。谁能帮忙?
【问题讨论】:
-
您知道例如 3.82 不能用浮点数精确表示吗?
-
我假设您想要每个部分的均匀分布?请注意,您可以从 33.38 中删除 5*1.2 并忽略“等于或大于 1.2”约束,并在提取每个部分后简单地将其添加回来。
标签: algorithm math language-agnostic