Tagged in

Algorithms

fcamel的程式開發心得
fcamel的程式開發心得
Notes about software development.
More information
Followers
461
More, on Medium

使用位元計算加速求解 N-Queen

最近聽 Frog 提到在游戲對局搜尋裡,常用位元計算加速搜尋的過程,是該領域的基本功。Frog 以 N-Queen 為例說明作法,結果在我的測試環境裡,N=16 只用了原本 1/7 的時間,加速效果驚人!


PaLa: A Simple Partially Synchronous Blockchain 讀後筆記

了解一件事最好的方法就是用自己的話說一次,PaLa 的想法滿有趣的,這篇說明我讀完後的理解,敘述方式和論文略有不同。

之前寫了兩篇說明相關的背景知識,有需要可以參考:

  • Blockchain BFT-style POS 的背景知識
  • Blockchain 的 BFT-style POS

Blockchain 的 BFT-style POS

前篇介紹了前置知識,這篇接著說明主題。我只有大致閱讀來源資料,沒讀完整也沒讀深。往後有更深理解後,再來補充。


直接從矩陣推導費氏數列 O(LogN) 的公式解

老闆剛好看到《費氏數列 O(LogN) 的解法》,寄了一份程式給我,裡面用了一串神祕的公式算出 F(n) 的解,效率一樣是 O(LogN),但沒用到矩陣乘法。

想了一陣子沒什麼頭緒。幸好,生在這個時代數學不好還可以上網偷查。看到《Program for Fibonacci numbers》的說明,研究了一下,搞懂為什麼了。在這裡自己推導一次,寫得詳細一點。


費氏數列 O(LogN) 的解法

在網路上看到可以用矩陣算出第 N 個費氏數列,時間複雜度是 O(LogN)。於是自己推想了一下。在使用矩陣的提示下,想出解法不會太難。

題目定義

  • F(n) = F(n-1) + F(n-2), n > 1
  • F(0) = F(1) = 1
  • 求 F(n) 的值

O(LogN) 的解


在 64bit CPU 上計算 16bit 數字的 bit 數

最近看到《Google’s “Director of Engineering” Hiring Test》,覺得作者 Pierre Gauthier 的技術能力超標於這個初階測驗。從他的回答學到了一些東西,這篇針對第九題作個簡單的測試。

題目:There’s an array of 10,000 16-bit values, how do you count the bits most…