C 里 求 log2 N 的问题
生活随笔
收集整理的這篇文章主要介紹了
C 里 求 log2 N 的问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
今天 在 寫 二叉樹 的 順序存儲方式時,遇到了 一個數學問題。
?已知,節點數 為 n 的 完全 二叉樹的 深度 k 為 ?: k = log2 N + 1,log2N向下取整。查了 一下 C 里 math.h 只有 log 和 log10 的函數。log 是 以 e 為底數, log10 是以 10 為底數,那怎么 求 以2為底的樹呢?
?百度了 一下 才 知道 ? log2n = In(N) / In(2) ?,In 是 以 e 為底數的,其值是2.71828...,用到了對數的 換底公式。
數學學的好,對于 一個軟件開發人員是很重要的。哎。。上網查了一下,對數的其他公式,以便以后 溫故。
1、 2、 3、 4、 5、 換底公式? 下面上代碼: // log2.cpp : 定義控制臺應用程序的入口點。 //#include "stdafx.h" #include <math.h>int _tmain(int argc, _TCHAR* argv[]) {int result = log(16.0)/log(2.0);printf("%d",result);return 0; } 輸出: 4
參考網址:點擊打開鏈接
總結
以上是生活随笔為你收集整理的C 里 求 log2 N 的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据结构与算法01:绪论【LEARN F
- 下一篇: 什么是流媒体