java - 尝试使用 Java 中的数学公式计算分数
问题描述
我正在尝试使用公式计算 Java 中的分数。我无法将其转换为 Java 代码。
公式:= 3 ^ ( ( log2( 点数/3) ) + 1)
点=输入。
我目前有这段代码,但我没有得到我想要的结果:
int score = 3 ^ (int)(Math.pow(Math.log(12 / 3), 2) + 1);
谁能告诉我我做错了什么,并可能给我一个片段应该如何?结果应为 27,输入为 12。非常感谢您提前。
编辑:
Input 3 = 3
Input 6 = 9
Input 12 = 27
Input 24 = 81
Input 48 = 243
Input 96 = 729
Input 192 = 2187
etc.
解决方案
公式为:
int score = (int) Math.pow(3, Math.log(points/3.0) / Math.log(2) + 1);
- Java 中的 ^ 是按位 XOR 运算符,您需要使用它
Math.pow
来代替 - log2(x) 是指“以 2 为底”的对数,它没有内置函数,但您可以使用 log(x)/log(2) 计算它
如果输出稍微偏离,您可能需要使用Math.round
而不是强制转换(int)
。
推荐阅读
- reactjs - 使用 react js 路由动态路径 url
- python - 搜索和替换单元格中的字符串
- amazon-web-services - 尝试连接到亚马逊 AWS EC2 实例时 SSH 挂起
- c# - 放入 ListView 项目
- python - 涉及圆面积的逻辑错误
- php - 允许的内存大小为 536870912 字节用尽(试图分配 12582920 字节)错误 laravel
- linux - 线程终止时是否调用了“SIGKILL”?
- sass - 使用 SASS 计算设备纵横比
- tuples - 遍历元组 Cplex
- react-native - fetch 发送 [object Object] 而不是 File 对象