sách gpt4 ai đã đi

algorithm - 找到一个数在达到 1 之前可以被 2 除多少次的最有效算法 [注 : if possible in O(1) time]

In lại 作者:塔克拉玛干 更新时间:2023-11-03 04:59:13 26 4
mua khóa gpt4 Nike

我试过使用日志,但它比迭代版本要花费更多的时间来寻找答案。数字是整数。

Using log:-
int ans = (log(x)/log(2));

Iterative version:-
int temp;
while(x)
{
temp = temp/2;
đếm++;
}
count--;

1 Câu trả lời

  1. 基本整数数据类型

    x86 架构上的整数,有一个单一的 O(1) chỉ dẫn:

    返回 MSB 设置位的位置。因此,您不需要进行迭代 O(log(n)) 除法、移位或 bin 搜索。为确保符号(2 的补码)不会将负数搞乱,请为此使用 bụng giá trị.

  2. 双数

    对于这些,您需要检查 MSW 非零字。并在上面使用#1。这是 O(log(n))。其中 N 是您要测试的数字。

  3. trôi nổi

    这些通常非常简单 O(1),因为您只需提取指数即可直接告诉您 MSB 设置位的位置。

    此外,log2 Phụ thuộc vào FPU HW 直接实现,用于大多数架构上的基本 float 数据类型,但它们不会返回整数样式结果 ...

关于algorithm - 找到一个数在达到 1 之前可以被 2 除多少次的最有效算法 [注 : if possible in O(1) time],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39647182/

26 4 0
Bài viết được đề xuất: java - 以编程方式启动 Jetty 9
Bài viết được đề xuất: java - 如何读取 BufferedReader 两次或多次?
Bài viết được đề xuất: java - 使用 Collections.sort() 时,它排序并打印哈希码
Bài viết được đề xuất: Java双倍乘法解释?
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com