唯一樹造的出來嗎? - 拼圖

Zora avatar
By Zora
at 2009-11-20T00:13

Table of Contents

※ 引述《joeyeh (joe)》之銘言:
: inorder: (3*(5-1/3*3)/(23 x^y 3)+2.5 e^x) x^0.5
: preorder: x^0.5 +/*3-5/1*3 3 x^y 23 3 e^x2.5
: 開方根運算符號我用x^0.5來代表,鍵盤上找半天找不到
: 學長真狠.....怎麼造...
以下用 ^ 表示 x^y
√ 表示 開根號
exp 表示 自然指數

前序為:

√ + / * 3 - 5 / 1 * 3 3 ^ 23 3 exp 2.5

前提: √ 和 exp 是單元函數 其他是二元函數

首先先括號 (為什麼能先括號等會講)

√ + / * 3 - 5 / 1 * 3 3 ^ 23 3 exp 2.5
√ + / * 3 - 5 / 1 (* 3 3) ^ 23 3 exp 2.5
√ + / * 3 - 5 (/ 1 (* 3 3)) ^ 23 3 exp 2.5
√ + / * 3 (- 5 (/ 1 (* 3 3))) ^ 23 3 exp 2.5
√ + / (* 3 (- 5 (/ 1 (* 3 3)))) ^ 23 3 exp 2.5
√ + / (* 3 (- 5 (/ 1 (* 3 3)))) (^ 23 3) exp 2.5
√ + (/ (* 3 (- 5 (/ 1 (* 3 3)))) (^ 23 3)) exp 2.5
√ + (/ (* 3 (- 5 (/ 1 (* 3 3)))) (^ 23 3)) (exp 2.5)
√ (+ (/ (* 3 (- 5 (/ 1 (* 3 3)))) (^ 23 3)) (exp 2.5))

所以對應的中序是 √(((3*(5-(1/(3*3))))/(23^3))+(exp 2.5))

如果像上面的表示法 單元函數把函數放後面的話

(此處用 sqrt 表根號...因為頗不直覺)

就是 (((3*(5-(1/(3*3))))/(23^3))+(2.5 exp)) sqrt
---
我覺得你問錯問題了....

運算式只需要其中之一就可以推得其他兩個

因為運算式裡面只有 operand 才是葉節點 同樣的只有 operator 才是非葉節點

所以可以輕易從這裡推得其他兩個 (這也是剛剛括號的依據)

一般的樹的表示法則不一定誰才是葉 所以才需要兩個
---
那麼就來看看一般的樹的版本 (沿用 sqrt 為根號)

前序 sqrt + / * 3 - 5 / 1 * 3 3 ^ 23 3 exp 2.5
中序 3 * 5 - 1 / 3 * 3 / 23 ^ 3 + 2.5 exp sqrt

一個重點: 前序第一個東西必然是根

所以 sqrt 是根 對照中序可知它只有左邊有東西

sqrt
┌───────┘
前序 + / * 3 - 5 / 1 * 3 3 ^ 23 3 exp 2.5
中序 3 * 5 - 1 / 3 * 3 / 23 ^ 3 + 2.5 exp

+ 是根。

sqrt
┌───────┘
+
┌────┴────┐
前 / * 3 - 5 / 1 * 3 3 ^ 23 3 exp 2.5
中 3 * 5 - 1 / 3 * 3 / 23 ^ 3 2.5 exp

右邊比較簡單: exp 是根 2.5 在左邊

sqrt
┌───────┘
+
┌────┴────┐
前 / * 3 - 5 / 1 * 3 3 ^ 23 3 exp
中 3 * 5 - 1 / 3 * 3 / 23 ^ 3 ┌┘
2.5

左邊: / 是根....但不知道哪一個才是根?

簡單: 前序和中序的元素個數是一樣的

所以如果中序的第一個 / 是根 那同樣取前面 5+1 個元素會得到不合理的東西

因此中序的第二個 / 是根

sqrt
┌───────┘
+
┌────┴────┐
/ exp
┌───┴────┐ ┌┘
前 * 3 - 5 / 1 * 3 3 ^ 23 3 2.5
中 3 * 5 - 1 / 3 * 3 23 ^ 3

同樣右邊簡單:

sqrt
┌───────┘
+
┌────┴────┐
/ exp
┌───┴────┐ ┌┘
前 * 3 - 5 / 1 * 3 3 ^ 2.5
中 3 * 5 - 1 / 3 * 3 ┌┴┐
23 3

左邊: 看似中序的第一個 * 是根...第二個如何? 似乎也很合理...

先試第二個好了:

sqrt
┌───────┘
+
┌────┴────┐
/ exp
┌──┴────┐ ┌┘
* ^ 2.5
┌─┴────┐ ┌┴┐
前 3 - 5 / 1 * 3 3 23 3
中 3 * 5 - 1 / 3

同樣 兩個 3 誰才是根呢? 第一個試試看:

sqrt
┌───────┘
+
┌────┴────┐
/ exp
┌──┴────┐ ┌┘
* ^ 2.5
┌─┴────┐ ┌┴┐
3 3 23 3
└──┐
前 - 5 / 1 * 3
中 * 5 - 1 / 3

- 是根...怪了 怎麼式子不合理? (左子樹前 5 / 中 * 5 )

所以這裡不對 那換試第二個 3 是根呢:

sqrt
┌───────┘
+
┌────┴────┐
/ exp
┌─┴────┐ ┌┘
* ^ 2.5
┌─┴───┐ ┌┴┐
3 3 23 3
┌┘
前 - 5 / 1 * 3
中 3 * 5 - 1 /

依然 - 是根...又不合理了 (左子樹前 5 / 1 中 3 * 5)

所以這表示那個 * 並不是第二個 * 才是根

第一個 * 才是

捲回去吧:

sqrt
┌───────┘
+
┌────┴────┐
/ exp
┌───┴────┐ ┌┘
* ^ 2.5
┌──┴──┐ ┌┴┐
3 前 - 5 / 1 * 3 3 23 3
中 5 - 1 / 3 * 3

這次 - 還是根 不過子樹的字串就合理了:

sqrt
┌───────┘
+
┌────┴────┐
/ exp
┌───┴────┐ ┌┘
* ^ 2.5
┌──┴──┐ ┌┴┐
3 - 23 3
┌────┴─┐
5 前 / 1 * 3 3
中 1 / 3 * 3

下面不用我說你也可以做得出來:

sqrt
┌───────┘
+
┌────┴────┐
/ exp
┌───┴────┐ ┌┘
* ^ 2.5
┌──┴──┐ ┌┴┐
3 - 23 3
┌──┴─┐
5 /
┌─┴─┐
1 *
┌┴┐
3 3

正好這個例子能解出唯一樹來...

我猜你學長想說的是 當節點的名字重覆時也許會出現不一樣的樹

最簡單的例子是:

X X
┌┘ └┐ 這兩個樹前序和中序和後序都是 XX 誰知道你哪個是哪個...
X X

因此用前中/中後建出原來的樹有個條件是節點的名字需要各不同

而運算式方面則因為已經有剛剛說的那個條件在了

所以除了可以唯一決定外 更只需要其一即可
---
給 end 了的其他 puzzle 版眾:

http://0rz.tw/8w8sn

這篇文章在說的是這個東西
---
資料結構啊...那已經是好幾年前學的東西了...(遠目)

--
'You've sort of made up for it tonight,' said Harry. 'Getting the
sword. Finishing the Horcrux. Saving my life.'
'That makes me sound a lot cooler then I was,' Ron mumbled.
'Stuff like that always sounds cooler then it really was,' said
Harry. 'I've been trying to tell you that for years.'
-- Harry Potter and the Deathly Hollows, P.308

--
Tags: 拼圖

All Comments

Christine avatar
By Christine
at 2009-11-23T14:10
我沒有END呀...雖然還是看不懂..噗....我先看連結好了....
Cara avatar
By Cara
at 2009-11-24T05:01
嗯,有點像在分析英文文法..但對象是數學式的感覺...
Daph Bay avatar
By Daph Bay
at 2009-11-27T23:06
理解到這裡就可以了..@@"
Vanessa avatar
By Vanessa
at 2009-11-30T09:40
哈哈~這真得是資料結構,最近剛考完XD
George avatar
By George
at 2009-12-03T19:21
感謝解答
Heather avatar
By Heather
at 2009-12-04T00:42
開平方根為單運算元符,在中序您習慣將運算元歸左子樹?
Candice avatar
By Candice
at 2009-12-06T02:01
老師是說中序括號不省是2D壓成1D所會造成的混謠
Lauren avatar
By Lauren
at 2009-12-10T14:41
應該說我在概念上會習慣將單元運算子放在運算元左邊
實際實作上就不一定了
Ethan avatar
By Ethan
at 2009-12-11T04:16
至於中序加括號的問題的確如此 也因此才有優先序出現
Adele avatar
By Adele
at 2009-12-15T09:02
Unary operator沒有左子樹
Gary avatar
By Gary
at 2009-12-15T15:17
所以我認為您中序中把sqrt放在最後...你知道的
Ingrid avatar
By Ingrid
at 2009-12-16T10:24
聽說原PO在當兵XDDDDDDD

唯一樹造的出來嗎?

Lucy avatar
By Lucy
at 2009-11-19T22:31
inorder: (3*(5-1/3*3)/(23 x^y 3)+2.5 e^x) x^0.5 preorder: x^0.5 +/*3-5/1*3 3 x^y 23 3 e^x2.5 開方根運算符號我用x^0.5來代表,鍵盤上找半天找不到 學長真狠.....怎麼造... - ...

賭局系列 PART(Ⅱ)[最終篇End]

Freda avatar
By Freda
at 2009-11-19T14:42
如果移師到 百家樂那邊, 是否就是 賭莊莊閒 或是 閒莊莊的 勝率高? 每次50元去壓 這種牌路 賺錢機率高? 輸了重新壓50, 贏了拿贏的錢續壓.. 50-andgt;100 , 100-andgt;200. 再重新以50元壓牌路 這樣長久下去會是賺錢的? 每次以獨立事件 ...

賭骰子4-最終篇(end)

Annie avatar
By Annie
at 2009-11-19T14:31
※ 引述《tp (會吵的孩子有糖吃)》之銘言: : 把賭局分開來看 : 只差一元時,該局的勝率是50% andlt; 1 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 這句話到底對不對呢? 如果以「醉漢漫步」的問題改編一下的話 假設醉漢在橋上行走,每向前走一步,就會往左or往右偏一步,機率各 ...

賭局系列 PART(Ⅳ)投降輸一半

Enid avatar
By Enid
at 2009-11-19T14:03
(前情提要) 星仔:「大軍每一把都來搗亂,如果一注10萬慢慢賭下去 就算能贏得80萬,恐怕也趕不上時間...」 刀仔:「這樣吧,你負責引開大軍,剩下來的時間大概還夠我來賭個3把。 我第一把先賭10萬,輸了再賭20萬,再輸就把剩下的40萬全梭了... 這樣我們至 ...

統計方式何者是理論上最公平的?

Dinah avatar
By Dinah
at 2009-11-18T23:51
抱歉板上的各位 bb我這篇感覺有點亂入 不過板上常討論機率跟統計的問題,因為友人有難急需解答 所以來問一下 囧andgt; 不行我就自刪了 -- 要問的問題是 20組表演者 5個評審 目前有三種排名次方式(各組) 1. 5個評審分數的平均排名(ex:85 86 87 84 83的平均) ...