已知x=10*log10(S/N)-10*log10(S/(N+k*N)),输入任意x输出10*log10(k)的值并打印出来

简介: 已知x=10*log10(S/N)-10*log10(S/(N+k*N)),输入任意x输出10*log10(k)的值并打印出来

背景

翎野君前段时间碰到了这样的一道题,觉得很有意思,特此记录下来。平常我们做题都是这个算法那个算法,乍一看这个题好像跟算法没什么关系。对,没错这就是一个数学题,我们来求解一下。

必备知识

直接从百度百科截取

推导过程

x=10*log10(S/N)-10*log10(S/(N+k*N))
x=10*log10(S/N)-10*log10(S/N(1+k))
x=10*log10(S/N)-10*log10(S/N * 1/(1+k))
x=10*log10(S/N)-(10*log10(S/N) + 10*log10(1/(1+k)))
x=-10*log10(1/(1+k)))
x=-(10*log10(1) - 10*log10(1+k))
x=10*log10(1+k)
k = 10^(x/10) - 1
10log10(k) = 10log10(10^(x/10) - 1)

代码实现

package com.lingyejun.dating.chap11.test;
import java.util.Scanner;
public class Examination {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        double n = sc.nextDouble();
        // 输出 10*log10(k)并打印出来
        System.out.println(calc(n));
    }
    public static int calc(double x){
        // 10*log10(k) = 10*log10(10(x/10)-1)
        return (int) (10 * Math.log10(Math.pow(10,(x/10)) -1));
    }
}

 

本篇文章如有帮助到您,请给「翎野君」点个赞,感谢您的支持。

原文链接:https://www.cnblogs.com/lingyejun/p/15605513.html


目录
相关文章
|
移动开发 Python
“ \r “导致print打印被覆盖
“ \r “导致print打印被覆盖
135 0
|
移动开发
5分钟教你使用 console.log 管理你的输出日志
5分钟教你使用 console.log 管理你的输出日志
171 0
控制台输出信息console.log()的用法总结
控制台输出信息console.log()的用法总结
214 0
console.log控制台里怎么输出图片
console.log控制台里怎么输出图片
167 0
console.log控制台里怎么输出图片
计算 1/1-1/2+1/3-1/4+1/5......+1/99-1/100的值,打印结果
计算 1/1-1/2+1/3-1/4+1/5......+1/99-1/100的值,打印结果
236 0
计算 1/1-1/2+1/3-1/4+1/5......+1/99-1/100的值,打印结果
C中无警告输出size_t的值
C中无警告输出size_t的值
99 0
|
Java Linux Windows
Logback:只输出Info和Error级别的日志,并输出到不同的文件
Logback:只输出Info和Error级别的日志,并输出到不同的文件
2282 0
Logback:只输出Info和Error级别的日志,并输出到不同的文件
|
前端开发 API 对象存储
5分钟教你使用 console.log 输出五彩斑斓的黑
5分钟教你使用 console.log 输出五彩斑斓的黑
3576 0
5分钟教你使用 console.log 输出五彩斑斓的黑
|
JavaScript C语言
console.log(a + a++ * ++ a)到底输出什么?
前言 有些小伙伴可能看到这道题目就已经蒙圈了!甚至可能看不懂这道题目在干什么。其实这是一道比较考察基础的面试题,当你明白原理之后,你可能会感觉这道题也就那么回事,但是如果你没有思绪,那你可能觉得这道题很难。 今天我们就来彻底看看这到底在做什么妖!
525 0
console.log(a + a++ * ++ a)到底输出什么?