Re: [問題] 一個數字用兩個字表示的方法
看板Prob_Solve (計算數學 Problem Solving)作者LPH66 (-858993460)時間14年前 (2011/01/22 20:42)推噓0(0推 0噓 1→)留言1則, 1人參與討論串5/7 (看更多)
※ 引述《mabus (CodeINCEPTION)》之銘言:
: 有不用這種用數學進制轉換的方式嗎?
: 原本有想過一些方法,
: 把數字丟到矩陣裡,想說接下能用什麼方法簡化(應該也可以說是壓縮吧?),
: 可是學藝不精,暫時還聯想不到...。
這個想法發展下去就是現在的有損圖片壓縮
最常見的 jpeg 就是以這種想法下去轉換
它用的轉換法是離散餘弦轉換 (是三角函數那個餘弦沒錯 XD)
在轉換後每一組大約會有一半左右的轉換係數是 0 或接近 0 的數
所以捨去一些小數後(這是圖片細節損失的主要來源)
再配合一些編碼壓縮就能達到五到十倍的壓縮率
當然你如果要完全還原 這種轉換就對你比較沒什麼幫助了
: 還有用代換的方式,例如12345....,換成12=a,34=b...這一類的方法,
: 可是代換一層之後就不能再繼續了,會無法還原...。
: 還有用加減乘除,例如123,分解成100+20+3,或是200-86,還其他的,
: 可是我還是找不出關係。
: 或是配合以上未完成的方法,搭配現實環境常態常數做組合,
: 例如年月日之類的,可是想到一半就想不下去了...。
: 若是限定5位數到6位數,濃縮成2位數,這有可能嗎?
其實這些想法都是一些壓縮轉換法的想法來源
現在的資料壓縮法不出兩種
用各種方法找出相同的子字串來做取代
或是以編碼方式代換各個符號 讓高頻率的字使用短編碼
但為了能讓前一種壓縮法能找到盡量多的相同子字串
或讓後一種壓縮法能找到較高頻率的符號縮短編碼
也有許多轉換是類似這種計算把隱藏的子字串或特性顯示出來
例如最常見的一種是若資料數值有緩慢變化的特性
那做一次"後減前"這種轉換後 許多的差值就會是很小的數
這樣只要第一個數字有適當存好的話
後面都可以用很少的資料量來表示 (不論用哪一種壓縮法)
: 本身不是學電腦工程的,所以對這方面知識很有限,
: 在解決這個問題的過程裡,我看到一個叫做熵的概念,
: 好像是資料混亂的程度的指標。
: 也就是說,若是限定數字的範圍縮小,混亂的程度可以降低吧?
: 如此可能性能提升吧?
編碼理論的熵(entropy)又是另外一回事了...
: 以上想法,若是有問題,就請各位大大當笑話看吧...。
: 還是請各位大大指點一下,該怎麼想比較好。
: 先謝謝各位的答覆了!
你是想要讓一個數字以簡短的方法表示後能轉換回來
除非你的數字有些特性 (例如只會出現某個型式的數字等等)
不然你必須要讓範圍內的所有數字都要能表示
那用一些簡單的組合計算就能知道你的表示法最多可以表現多少種組合
進一步知道你需要多少個字才能表示了
例如一個很簡單的想法 若一個字能取大小寫字母+數字一共62種
那麼兩個字就能表示 62^2 = 3844 種 三個字就能表示 62^3 = 238328 種 等等
反過來想 如果像你上面想要的 六位數數字要用兩個字表示
也就是一百萬種組合要用兩個字表示 那一個字就要有一千種組合
我想世界上除了中文字之外大概找不到你想要的組合了 XD
也因此才會有許多看起來像是單純的進位轉換的方法
因為這是最簡單能讓數字和編碼一一對應的方式
我在前面推文提到的 base64 就是使用這個方法
它的一個字可以取字母大小寫加數字加兩個符號一共 64 種
這樣的四個字可以有 64^4 = (2^6)^4 = 2^24 = (2^8)^3 = 256^3 種組合
↑
(這是為什麼要取 64 的原因)
正好可以拿來表示 3 byte 的任意資料
話說回來 剛剛也提到過 如果你的數字有些不會出現的話
那善用它的特性可以進一步"壓縮"你的資料表示
例如如果某個六位數是表示一天中的某個時間
那麼與其使用六位數的表示法
轉換成一天中的第幾秒一共只有 86400 種組合
單以十進位數字來看就少了一位了 再加上上面提到的表示法就能大幅減少"位數"
你可以往這個方向去思考哪個方法最適合你的需求
--
這種東西再深入一點就是編碼理論的領域了...
這門學問可是值得資工系開一門課來教的東西 XD
不只資料壓縮會用到 網路、通訊方面的應用也是以它基礎
(講誇張一點 摩斯電碼就是一個很古早(?)的通訊編碼 XD)
--
◢ ˊ_▂▃▄▂_ˋ. ◣ ▅▅ ▅▅ ι●╮ █▄▄▄▄▄
▍./◤_▂▃▄▂_◥ \'▊ HARUHI █████ <■┘ ▄▄▄▄▄▄▄
▎⊿ ◤◤◥█◥◥█Δ ISM By-gamejye ¢|\ ▌▌▌▌▌▄▌▌
▏ζ(▏●‵◥′●▊)Ψ ▏ █ ⊿Δ ▄▄▄ ▄▄▄▄
█/|▊ 〃 、 〃▋ |\ ▎ ハルヒ主義 █▄▄▄█▄▄
◥◥|◣ ‵′ ◢/'◢◢S.O.S 世界を大いに盛り上げるための涼宮ハルヒの団
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.28.92
※ 編輯: LPH66 來自: 140.112.28.92 (01/23 00:27)
→
01/26 01:31, , 1F
01/26 01:31, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 5 之 7 篇):
Prob_Solve 近期熱門文章
PTT數位生活區 即時熱門文章