看板 Physics 關於我們 聯絡資訊
※ 引述《ahs.bbs@bbs.kimo.com.tw (貓老大)》之銘言: > 我看到一本書上寫著只要在一根棒子上畫上一點 > 然後以測量儀器測量棒子上那點與棒子左右兩端距離的比值(小數) > 我們就可以以此小數來儲存資訊,只不過小數點後太多位不是人類科技能測量的.... > 於是我想到...不知可不可以用能預測的超越數代替 > 假若我們把所有的文字和符號用數字編碼 > 例和a=01,b=02,t=20,那cat這個字就可以用010220表示 > 以此方法,我們就可以把一本書的內容用數字編碼 > 假設有一本書需要十億個數字來編碼好了... > 這時候我有個想法,我們是否能創造一個可推算的超越數(如π,e,或根號某數) > 而此超越數小數點後十億位內正好與那本書編碼的內容一致 > 如此,我們就可以用這個超越數來記載那本書的資訊 > 今後想要取出書的內容只要用超級電腦來計算此超越數的值即可 > 若想以一個簡單的超越數來儲存龐大的資訊....不知道人類辦不辦的到 十多年前,Dr Dobb's Journal上有篇文章在講壓縮演算法,提到有外星人宣稱 可以把任何資料壓縮成一個符號,迅速傳送到遠端,再原原本本的把它反壓縮回 來,而且任何長度的任意資料都可以被壓縮成對應一個符號。 你的想法就好像那個外星人的演算法,怎麼樣找出對應你所要處理的資料的超越數 (以及該超越數所包含的資料),才是真正的問題所在。 不過我可以給你一個變通的方法:圓周率的randomness據說是非常均勻的,雖然現在 還沒有人能夠在數學上從頭到尾證明這一個假設,但是你可以大膽猜測這是成立的, 然後依據這個假設來做些事情。這也就是說,任何數字排列都可以在圓周率在小數點 後任意個連續位數的數字排列中出現。 假設你有一筆長度為n bytes的資料,然後你找到圓周率在小數點後第m位到第m+n-1 位的內容剛好跟這筆資料一樣,你就只要記錄下m跟n兩個數字就可以代表那個資料。 如果m跟n兩個數字的位元長度跟記錄這兩個數字有多長的資料的位元長度的總和比 n*8個位元短,你就可以把這一筆資料壓縮掉。 不過,我很懷疑,你所要壓縮的任意資料是否都可以透過這個方法壓縮得更短,通常 是會變得更長,因為大部分資料要在圓周率的小數點後的位數中找到對應的段落可能 都在成億上兆位之後了,光是儲存這段落起點位置的資料量可能都大得嚇人。如何找 尋符合的段落倒比較沒問題,1996年就有人找到了可以在常數時間內算出以十六進位 表示的圓周率在小數點後任意一位數的演算法了。 要這樣子玩,還不如去設計一個動力系統,讓你可以帶入一個初始值,透過碎形的方 式產生出你要的資料段落,這樣子你就得到一個碎形壓縮法了。 -- ╔═══╗ ┼────────────────────────╮ 狂狷 Origin:[ 狂 狷 年 少 ] whshs.cs.nccu.edu.tw ╰─╮ 年少 ┼╮ < IP:140.119.164.16 > ╰─╮ ╚╦═╦╝ From:rabbit.ezlag.com ─╨─╨─ KGBBS 遨翔"BBS"的狂狷不馴;屬於年少的輕狂色彩