C 里 求 log2 N 的问题
生活随笔
收集整理的這篇文章主要介紹了
C 里 求 log2 N 的问题
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
今天 在 寫 二叉樹 的 順序存儲(chǔ)方式時(shí),遇到了 一個(gè)數(shù)學(xué)問(wèn)題。
?已知,節(jié)點(diǎn)數(shù) 為 n 的 完全 二叉樹的 深度 k 為 ?: k = log2 N + 1,log2N向下取整。查了 一下 C 里 math.h 只有 log 和 log10 的函數(shù)。log 是 以 e 為底數(shù), log10 是以 10 為底數(shù),那怎么 求 以2為底的樹呢?
?百度了 一下 才 知道 ? log2n = In(N) / In(2) ?,In 是 以 e 為底數(shù)的,其值是2.71828...,用到了對(duì)數(shù)的 換底公式。
數(shù)學(xué)學(xué)的好,對(duì)于 一個(gè)軟件開發(fā)人員是很重要的。哎。。上網(wǎng)查了一下,對(duì)數(shù)的其他公式,以便以后 溫故。
1、 2、 3、 4、 5、 換底公式? 下面上代碼: // log2.cpp : 定義控制臺(tái)應(yīng)用程序的入口點(diǎn)。 //#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
參考網(wǎng)址:點(diǎn)擊打開鏈接
總結(jié)
以上是生活随笔為你收集整理的C 里 求 log2 N 的问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 数据结构与算法01:绪论【LEARN F
- 下一篇: 什么是流媒体