相关疑难解决方法(0)

23
推荐指数
2
解决办法
3万
查看次数

这个2次幂函数的"大O"

以下功能的"大O"是什么?我的假设是它是O(log(n)),但我想仔细检查.该函数简单地确定其参数是否为2的幂.

def pow_of_2(x):
    a = math.log(x, 2)
    if a == math.floor(a):
       return True
    else:
       return False
Run Code Online (Sandbox Code Playgroud)

python big-o time-complexity

3
推荐指数
1
解决办法
328
查看次数

为什么 n & (n - 1) 总是从 n 中清除 1 位?

给定一个数字n,逐位运算n & (n - 1)总是产生一个距离 1 位的数字n。以下是一些示例:

n = 4 => b'100' & b'011' = b'000'
n = 5 => b'101' & b'100' = b'100'
n = 6 => b'110' & b'101' = b'100' 
Run Code Online (Sandbox Code Playgroud)

换句话说,n & (n - 1)总是从 中清除 1 位n。为什么是这样?有人可以提供证明吗?

bit-manipulation

2
推荐指数
1
解决办法
813
查看次数

N = 2 ^ x,如果为真,则写入true.为什么这是错的?

请帮我编码.我想做一个像这样的程序.对不起坏英语.

给定输入:

N  
where N is an integer. 
Run Code Online (Sandbox Code Playgroud)

返回:

True  if N = 2^x, where x is an integer.
Run Code Online (Sandbox Code Playgroud)

我试过这样做,但它不能像我想的那样工作.

using namespace std;
int main()
{
    float a,b,c;
    cin>>a;
    c=log10(a)/log10(2.0);
    b=pow(2,c);
    if(b==a)
    {
        cout<<"TRUE"<<endl;}
    else
        cout<<"FALSE"<<endl;{
    }
}
Run Code Online (Sandbox Code Playgroud)

请帮帮我.谢谢.

c++ logarithm pow

0
推荐指数
1
解决办法
185
查看次数

标签 统计

big-o ×1

bit-manipulation ×1

c ×1

c++ ×1

logarithm ×1

pow ×1

python ×1

time-complexity ×1