- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想做的事情非常简单,但我无法弄清楚它的数学和代码。
我有一个百分比,在控制台中显示为每个渐进步骤的新数字。所以我知道每一步 1-100 的确切百分比。假设不断进行,我想要的只是显示某个指数函数上的数字:
而不是显示:
1,2,3,4,5,6,7....100
我只想显示:
1,2,4,8,15,25,40,65,90,(100)
或者类似的东西。其想法是显示最初的 Activity ,但很快就会降低垃圾邮件的百分比。
我该怎么做?我唯一能想到的就是定义一个允许打印的固定数字数组(也许这是最好的解决方案?不过,我觉得应该有一个更优雅的基于数学的解决方案)。嗯,或者可能使用指数函数/缓和曲线填充这样的数组。
添加一些有关如何获取百分比的信息:
for (int i = 0; i < batchjob.size(); i++) {
int percent = 100 * i / batchjob.size();
log.debug("Progress: {}/{} = {}%", i, batchjob.size(), percent));
}
现在我尝试了以下方法:
final Set<Integer> progressDisplay = newHashSet(1, 2, 4, 8, 15, 25, 40, 65, 90, 100);
for (int i = 0; i < batchjob.size(); i++) {
int percent = 100 * i / batchjob.size();
if (progressDisplay.contains(percent)) {
log.debug("Progress: {}/{} = {}%", i, batchjob.size(), percent));
}
}
但是,这会导致类似的结果:
<小时/>1,1,1,1,1,1,1,2,2,2,2,2,2,2,4,4,4,4,4,4,4,8,8,8,8,8,8,8...etc
我结合了接受的答案和固定数组。我最终决定使用一个简单的数组,因为我可以更轻松地调整数字。
final int[] progressDisplay = {1, 3, 8, 20, 50, 75, 100};
int lastMatchingIndex = 0;
for (int i = 0; i < batchjob.size(); i++) {
processBatchJob(batchjob.get(i));
int percent = 100 * i / batchjob.size();
if (progressDisplay[lastMatchingIndex] == percent) {
log.debug("Progress: {}/{} = {}%", i, batchjob.size(), percent);
lastMatchingIndex++;
}
}
最佳答案
//initial exponential function check
int baseNum = 2;
final int exponent = 3;
int check = Math.pow(baseNum, exponent);
for(int x = 1; x <= 100; x++){
if(x == check){
System.out.println(x);
baseNum++;
check = Math.pow(baseNum, exponent);
}
}
这只是一个例子;您没有提供足够的信息来获得完整的解决方案。但是,您应该能够应用这个想法:您可以应用指数函数一次,然后在迭代时检查函数的输出,如果相同,则重新应用指数函数并重复。
关于java - 如何计算指数级数的百分比?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57278549/
我需要对反正切值执行泰勒级数 50 次。表示 arctan Taylor 级数的域之间的 50 个数字,即 [-1,1]。我已经用手动用户输入对其进行了测试并且它工作正常,但是我在代码中递增 0.01
我在网上看了几个小时,想看看我是否能找到解决方案,虽然我已经找到了很多解决方案,但我教授的指示如下: Write a program to estimate PI (π) using the foll
我最近在编程测试中被问到这个问题。我似乎无法理解为什么我会得到答案“1”。我是 C 编程语言的初学者。 这是我的代码: #include int main() { float c = 0;
我是一名优秀的程序员,十分优秀!