Try   HackMD

2017q3 Homework1 (ternary)

contributed by <LinRiver>

Balanced Ternary 簡介

Balanced Ternary (中文稱「平衡三進位」)是以 -1(或T), 0, 1 作為數值計算系統。在不同情形下會使用 -,0,+ 表示。相較於其他數值系統(如二進位或十進位),Balanced Ternary 無需額外位元表示正負號即可所有整數系呈現。

除此之外, base-b 之 single digit 擁有 log2b bits 的資訊。base-3 之 single digit 擁有 log23 資訊,亦是 base-2 的 1.58 倍。

base-3 數值系統之邏輯狀態分為 true , unknown , false。 如下表格整理所示:

true value unsigned balanced
false 0 -
unknown 1 0
true 2 +

TODO: 詳細閱讀 Fast Ternary Addition,理解 base-3 的原理 (並且複習數位邏輯),整理 base-3 基礎運算操作
"jserv"

Balanced Ternary 運算

一般性表示法

(anan1...a1a0.c1c2c3...)3=i=1nak3k+k=1ck3k,其中:

  • anan1...a1a0.c1c2c3...為在 Balanced Ternary 之表示
  • akck 為第 k 個位元所對應之係數

請閱讀 Ternary computing: basics,關注於 ternary multiplexer, Unary functions, half-adder, Consensus, full adder, Overflow
"jserv

謝謝老師指導!
LinRiver

邏輯運算

AND

false unknown true
false false false false
unknown false unknown unknown
true false unknown true

OR

false unknown true
false false unknown true
unknown unknown unknown true
true true true true

NOT

original NOT
false true
unknown unknown
true false

以上運算不特別使用數值表示法,而是將真實狀態進行邏輯運算,所以 unsigned 或是 balanced ternary 皆適用。透過真實狀態呈現,可以清楚知道 unknown 狀態如何與其他狀態執行邏輯運算。

數值運算

Balanced Ternary 優勢

數值呈現

相較於二進位數值系統,

  • 可用較少位元呈現相同數值,例如16dec=1TT1bal3=10000bin
  • 相同位元數 n 下可涵蓋更多正負數值呈現,從 3n13n11

繼續研讀 What is the most efficient numerical base system?,並依據裡頭的分析,量化上述討論
"jserv"

謝謝老師的資料!
LinRiver

經濟效率呈現

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

首先上圖是探討 radix economy 之經濟效率呈現。

  • 可以清楚看到當 radix(e) 時,在 五個不同的 radix×width(rw) 表現上皆為最低值呈現,其經濟效益最高。
  • 探討 radix economy 是綜合考量了進制的數值和位元數的多寡的量化方式,其精準定義為:
    • E(b,N)=b×(logbN1) ,其中 b 為進制數值而 N 為所欲表示之數值。
  • 針對 radix economy 精準定義後,其後探討在 b 為多少時可得到 E(B,N) 為最小。
    • 首先將 b 從離散區間擴展成連續區間,將整體量化分析視為連續函數的極值問題。
    • 將此連續函數 E(b,N)=b×(logbN1) 近似為 E(b,N)=b×logbN=(b/logeb)×logeN ,進行一階導數定理求其臨界點和二階導數定理判斷凹口方向。
    • 一階導數定理: E(b,N)=(logeN×(logeb1))/(logeb)2=0 (令其為0),明顯可得到 b=e
    • 二階導數定理: E(b=e,N)<0 (二階函數圖形凹口向上),確立當 b=e 時其 radix economy 的 E(e,N) 有最大值。

對於 b=e 時會有最大經濟效益下,在進制數值上我們選擇 b=3 。然而我將此問題進一步思考,會選擇 b=3 還有那些特殊數值? 顯然是 π=3.1415926... ,目前仍持續研究。

參考資料

Fast Ternary Addition
Wikipedia: Balanced ternary
c2 wiki
st9007a共筆
What is the most efficient numerical base system?
三生萬物