contributed by < chasingfar
>
N 位長度的 hash table 可能發生碰撞測試次數不是
此網站並未提供亂數產生器算法,所以很難從數學角度解釋。
簡單的統計一下前1000個0~9的出現次數(seed=0)
可看出極不均勻,不知是不是樣本過少的關係,但它上限就是1000個。
在實務中需要真亂數時可以考慮random.org提供的服務,
若有可控的偽亂數需求可以考慮 c++11 提供的 <random>
函數庫,或者 intel 提供的 MKL 函數庫。
function call 需要對 stack push
及 pop
最少也需要 jmp
與 ret
,會對 stack 造成負擔以及產生多餘的指令。
用 macro 來實作的話就不會有多餘的指令及額外的 stack 消耗,但會有編譯後程式體積增加及難以維護的缺點
#define container_of(ptr, type, member) \
__extension__({ \
const __typeof__(((type *) 0)->member) *__pmember = (ptr); \
(type *) ((char *) __pmember - offsetof(type, member)); \
})
list_for_each_safe
和 list_for_each
的差異在哪?“safe” 在執行時期的影響為何?@
符號,這有何意義?你能否應用在後續的程式開發呢?tests/
目錄底下的 unit test 的作用為何?就軟體工程來說的精神為何?tests/
目錄的 unit test 可如何持續精進和改善呢?examples
裡頭有兩種排序實作 (insertion 和 quick sort),請簡述其原理