---
# System prepended metadata

title: 題目分類tmp(若芸)
tags: [' Type Reduction', Solving Strategy, ' Type Labeling']

---

---
tags: Solving Strategy, Type Labeling, Type Reduction, 
---


# 題目分類tmp(若芸)
- 運算思路
    - 每個子句標上相應的type，先看問句再從第一個子句依序執行
    - 先將每個子句產生相應的算式
    - 得到每個子句的算是後再依type間的規則兩兩合併，除了特殊rule(ex: ==[等價]== 、 ==[增加]== 或 ==[減少]== 關係)外，都是由左至右兩兩合併
    - 合併後剩下一個條件句和問句type，即求出問句要的答案
    - 若合併後沒求出問句要得所有答案，再將已知數代入原本、未合併前的子句，依序代入每個子句直到求出所有的答案
    - 所以完整題目跑第一次是為了**合併子句type**；第二次之後是為了求出答案

- 目前定義的規則
    - 一般由左至右合併
    - ( 有關 ==[增加]== 、 ==[減少]== ) 相鄰 ==[等價]== : 優先合併，句子描述大概是"再增加/減少...就會一樣"
    - 兩兩個 ==[兩數關係]== 相鄰 : 子句描述會含"之和"或"之差"或"平均"。其中"平均"就事先處理成"之和"的狀態；若type相鄰且都是相同句子描述就**相減**合併成新的 ==[兩數關係]== ；若描述相反就**相加**合併
        - 甲乙平均 ==[兩數關係]== -> 甲乙之和 ==[兩數關係]==
        - 甲乙之和，乙丙之和 ==[兩數關係]== 、 ==[兩數關係]== -> 甲丙之差 ==[兩數關係]==
        - 甲乙之差，乙丙之和 ==[兩數關係]== 、 ==[兩數關係]== -> 甲丙之和 ==[兩數關係]==
    - ==[每單位量]== 、 ==[起始端]== 、( ==[存在]== 或 ==[長度]== )三者相鄰 : 通常是有關**種樹**問題。，執行順序有點不同
        - 最後是 ==[存在]== ，已知樹的數量求距離 : ==[存在]== > ==[起始端]== > ==[每單位量]==
        - 最後是 ==[長度]== ，已知距離求樹的數量 : ==[長度]== > ==[每單位量]== > ==[起始端]==

---

- 兩數
    - 兩數和+比 OR 相等
        ::: spoiler 甲走5分鐘和乙走24分鐘的距離共390公尺,而甲走3分鐘的路程比乙走8分鐘還遠10公尺,求二人的分速各幾公尺?
        甲走5分鐘和乙走24分鐘的距離共390公尺 -> ==[兩數關係]==
        而甲走3分鐘的路程比乙走8分鐘還遠10公尺 -> ==[比]==
        求二人的分速各幾公尺? -> ==[問速率]==
        
        看type順序: question -> condition_1 -> condition_2
        
        因為問句是 ==[問速率]== 所以在看到第一句type為 ==[兩數關係]== 其中甲乙底下的值為時間(5、24分鐘)，表示題目條件句給了時間但缺少距離(無法算出甲乙的速率)，將未知數x、y設為甲乙的距離。 ==[兩數關係]== : 5x+24y=390
        
        ==[比]== 的情況和 ==[兩數關係]== 一樣，因為題目只給時間，因此設定未知數x、y為甲乙的距離。 ==[比]== : 3x=8y+10
        
        最後解二元一次方程式，得出x、y值(甲乙距離)。 ==[兩數關係]== 、 ==[比]== 合併成存有甲乙各自的時間和距離的 ==[原有量]== 。再根據問句 ==問速率== 算出甲乙的速率
        :::
        
        ::: spoiler 甲、乙二人存彈珠,甲比乙的5倍少49個,乙若再存117個,則甲和乙3倍一樣多,求二人原各有幾個?
        甲、乙二人存彈珠 -> ==[敘述句]== (不加入運算)
        甲比乙的5倍少49個 -> ==[比]==
        乙若再存117個 -> ==[增加]==
        則甲和乙3倍一樣多 -> ==[等價]==
        求二人原各有幾個? -> ==[問各數]==
        
        從 ==[比]== 將甲乙設未知數x、y代表甲乙原有量。 ==[比]== : x=5y-49
        
        在 ==[增加]== 句子中應為目前沒有乙的原有量，故現在先不做任何事
        
        在 ==[等價]== 時前面若接 ==[增加]== 或 ==[減少]== 通常是指"再增加...或減少...就一樣"的句型，因此把 ==[增加]== 、 ==[等價]== 合併成 ==[兩數關係]== 。 ==[增加]== + ==[等價]== = ==[兩數關係]== : x = (y+117)*3 
        
        因此句子的type剩下 ==[比]== 、==[兩數關係]== 、 ==[問各數]== ，最後解二元一次求出個數並把 ==[比]== 、 ==[兩數關係]== 一樣變成 ==[原有量]== 。
        :::
        
    - 兩數和 or 兩數和平均
        ::: spoiler 甲乙之和35,乙丙之和25,甲丙之和30,求各數
        甲乙之和35 -> ==[兩數關係]== 
        乙丙之和25 -> ==[兩數關係]== 
        甲丙之和30 -> ==[兩數關係]== 
        求各數 -> ==[問各數]== 
        
        若 ==[兩數關係]== 兩兩相鄰合併。其中子句裡的"和"、"差"會標成label，作為辦別合併的依據。如"甲乙之和35"、"乙丙之和25"要做合併並且都是"和"的概念，所以合併後會變成"甲丙之差10(甲-丙=10)" ==[兩數關係]== 的合併後子句。
        
        現在變成"甲丙之差10" ==[兩數關係]== 、"甲丙之和30" ==[兩數關係]== 、"求各數" ==[問各數]== ，同理把前兩句合併成新的 ==[兩數關係]== ，但兩子句概念分別為"差"、"和"，所以合併後變成"二甲之和20" ==[兩數關係]== ，算出甲的值
        
        最後把在重跑原本的子句分別算出乙、丙。(可能題目要跑兩遍，跑第二遍是因為問句要得到乙丙值，所以重跑)
        :::
        
        ::: spoiler 甲乙之和36,乙丙平均20,甲丙之和48,求各數
        甲乙之和36 -> ==[兩數關係]== 
        乙丙平均20 -> ==[兩數關係]== 
        甲丙之和48 -> ==[兩數關係]== 
        求各數 -> ==[問各數]== 
        
        和上題做法一樣，但第二子句的"平均"概念，會事先處理把"乙丙平均20"轉換成"乙丙之和40"，就能和前一題一樣。 
        :::
        
    - 兩數和+其他
        ::: spoiler 媽拿500元買一隻襪子和一雙手套找回125元,若買同式的帽子二頂與手套二雙不夠90元,如果改買同式的帽子三頂與襪子三雙不夠220元,求各項單價
        媽拿500元買一隻襪子和一雙手套找回125元 -> ==[買]== 
        若買同式的帽子二頂與手套二雙不夠90元 -> ==[買]== 
        如果改買同式的帽子三頂與襪子三雙不夠220元 -> ==[買]== 
        求各項單價 -> ==[問各數]==
        
        雖然問句都叫 ==[問各數]== 但程式端會判斷求值的單位做相應計算
        
        先設襪子、手套價格為x、y。第一句依"找回"代表500-125。 ==[買]== : x+y=375。將 ==[買]== 轉換成 ==[兩數關係]== 變"襪子手套之和375"
        設帽子價格z。第二句依"不夠"將500+90。 ==[買]== : 2z+2y=590。轉換成 ==[兩數關係]== 變"二帽子二手套之和590"，或許能做近一步約分成"帽子手套之和295"
        第三句依"不夠"將500+220。 ==[買]== : 3z+3x=720。轉換成 ==[兩數關係]== 變"三帽子三襪子之和720"，或許能做近一步約分成"帽子襪子之和240"
        
        從原本子句type ==[買]== ==[買]== ==[買]== ==[問各數]== 變成 ==[兩數關係]== ==[兩數關係]== ==[兩數關係]== ==[問各數]== 。就能和前幾題一樣方式執行。
        :::
        
        ::: spoiler 八年前,甲乙共28歲,乙丙平均11歲,甲丙平均12歲,求今年各幾歲?
        八年前 -> ==[時間]== 
        甲乙共28歲 -> ==[兩數關係]== 
        乙丙平均11歲 -> ==[兩數關係]== 
        甲丙平均12歲 -> ==[兩數關係]== 
        求今年各幾歲? -> ==[問各數]==
        
        (10/6更新) 先算好三個子句的值(八年前的年紀)，再根據問句把八年的值加回
        
        前兩子句 ==[時間]== 、 ==[兩數關係]== 合併成"甲乙八年前共28歲"或"甲乙共44歲"成新的 ==[兩數關係]==
        後兩子句將"平均"概念事先處理成"和"的概念
        題目將改寫成"甲乙共44歲,乙丙共22歲,甲丙共24歲,求今年各幾歲?" ==[兩數關係]== ==[兩數關係]== ==[兩數關係]== ==[問各數]==。用之前方法解。
        :::
        
    - 兩數 使相等 :question:
        ::: spoiler 甲乙二人各出同款合買土地,結果甲得2.8公畝,乙得1.6公畝,所以甲再給乙60萬元,二人各出多少元?
        甲乙二人各出同款合買土地 -> ==[等價]== 
        結果甲得2.8公畝 -> ==[擁有]== 
        乙得1.6公畝 -> ==[擁有]== 
        所以甲再給乙60萬元 -> ==[給予]== 
        二人各出多少元? -> ==[問各數]== 
        
        `[60/(2.8-1.6)/2]*[(2.8+1.6)/2]= 220`
        :::
        
        ::: spoiler 姊妹二人合買緞帶,姊比妹多支出900元,但是姊姊比妹妹多拿45公尺,姊再給妹495元,請問緞帶1公尺值幾元?
        姊妹二人合買緞帶 -> ==[敘述句]== 
        姊比妹多支出900元 -> ==[比]== 
        但是姊姊比妹妹多拿45公尺 -> ==[比]== 
        姊再給妹495元 -> ==[給予]== 
        請問緞帶1公尺值幾元? -> ==[問每單位]== 
        
        `(900+495*2)/45= 42`
        
        :::

---

- 三數
    - 三數和+比+相等
        ::: spoiler 甲乙丙三人共有360元,甲拿出40元、乙拿出30元一併給丙,結果三人錢數成為相等,求三人原各有幾元?
        甲乙丙三人共有360元 -> ==[三數關係]== 
        甲拿出40元、乙拿出30元一併給丙 
            -> (normalize) 甲拿出40元給丙，乙拿出30元給丙 -> ==[給予]== 、 ==[給予]==
        結果三人錢數成為相等 -> ==[等價]== 
        求三人原各有幾元? -> ==[問各數]==
        
        第一句 ==[三數關係]== : x+y+z=360
        :question:`第二句的"一併"要如何表示???`
        
        (假設已經解決"一併"問題)那 ==[給予]== 、 ==[等價]== 相鄰其合併規則就和 ==[增加]== 相鄰 ==[等價]== 意思一樣(參考自第2題)
        ==[給予]== 、 ==[給予]== 、 ==[等價]== : x-40=z+70、y-30=z+70。即求出z(丙)值
        最後因為問句是 ==[問各數]== 所以再重跑原本的題目得到甲乙的值
        :::
         
        ::: spoiler 三兄弟拿出相同的錢合買土地,老大比二位弟弟各多得30公畝,因此,給老二、老三各30萬元,土地1公畝值多少元?
        三兄弟拿出相同的錢合買土地 -> ==[等價]== 
        老大比二位弟弟各多得30公畝 -> ==[比]== 
        因此 -> ==[敘述句]== 
        給老二、老三各30萬元 
            -> (normalize) 老大給老二30萬元 ，老大給老三30萬元 -> ==[給予]== 、 ==[給予]== 
        土地1公畝值多少元? -> ==[問每單位量]==

        (這題解題方式可能無法通用)

        ==[等價]== 、 ==[比]== 相鄰時，將 ==[比]== 的值(30公畝) 除以 ==[等價]== 的人數(3) : 30/3=10 。 表達每人應分10公畝出的錢才相同，但老大減少20公畝，改寫成"老大給老二10公畝，老大給老三10公畝"合併成 ==[給予]== 、 ==[給予]==
        句子變: 老大給老二10公畝，老大給老三10公畝，老大給老二30萬元 ，老大給老三30萬元 -> ==[給予]== 、 ==[給予]== 、 ==[給予]== 、 ==[給予]==
        所有 ==[給予]== 的子句合併，所以tree結構中老二、老三的節點下就會有兩個值: 10公畝、30萬
        最後句子成: ==[給予]== 、 ==[每單位量]== 
        再根據 ==[問每單位量]== 從tree結構中得到 1公畝/3萬的答案
        :::
        
        ::: spoiler 三個連續整數之和是168,求各數是多少?
        三個連續整數之和是168 -> ==[三數關係]== 
        求各數是多少? -> ==[問各數]== 
        
        這一題需要作特殊處理，第一句依"連續"判斷出 ==[三數關係]== : 3x+3=168。求出x
        :::

---

- 四數以上
   ::: spoiler 小潔家爸爸、媽媽、哥哥年紀各是44、42、16歲,小潔為14歲,求全家平均幾歲?
   小潔家爸爸、媽媽、哥哥年紀各是44、42、16歲 
       -> (normalize) 小潔家爸爸年紀是44歲，小潔家媽媽年紀42，小潔家哥哥年紀16歲 -> ==[年紀]== 、 ==[年紀]== 、 ==[年紀]==
   小潔為14歲 -> ==[年紀]== 
   求全家平均幾歲? -> ==[問平均]== 
   
   第一句遇到"各"就作normalize，顯示每個人的年紀
   在問句 ==[問平均]== 中要問的單位是"年紀"，所以就將前面條件句中有"年紀"的值作加總，把前面所有的 ==[年紀]== 子句，合併成一個加總的 ==[年紀]== 子句
   最後句子剩 ==[年紀]== 、 ==[問平均]== ，並依加總次數作平均，即答案
   :::

   ::: spoiler 本校五年一、二班都有49人,三班有52人,四、五班都有45人,平均每班有幾人?
   本校五年一、二班都有49人 
       -> (normalize) 本校五年一有49人，本校五年二班有49人 -> ==[人數]== 、 ==[人數]== 
   三班有52人 -> ==[人數]== 
   四、五班都有45人 
   -> (normalize) 四有45人，五班有45人 -> ==[人數]== 、 ==[人數]== 
   平均每班有幾人? -> ==[問平均]== 
   
   句中若有"都"都概念相當於"各"，所以也作normalize，顯示每班人數
   作法跟前一題一樣，剩下 ==[人數]== 、 ==[問平均]== ，並依加總次數作平均，即答案
   :::

---

- 種樹
   ::: spoiler 公路兩旁每隔30公尺種一棵椰樹,兩端都種,在椰樹之間又種兩棵樟樹,已知樟樹共有160棵,求路長幾公尺?
   公路兩旁每隔30公尺種一棵椰樹 -> ==[每單位量]== 
   兩端都種 -> ==[起始端]== 
   在椰樹之間又種兩棵樟樹 -> ==[每單位量]== 
   已知樟樹共有160棵 -> ==[存在]== 
   求路長幾公尺? -> ==[問長度]== 
   
   第一句 ==[每單位量]== 會記有"兩旁"、"一棵椰樹/30公尺(每單位量)"資訊。並根據"兩旁"會把之後子句有關"總和(ex: ==[存在]== )"的概念的值都除以2
   第三句的 ==[每單位量]== 會和相鄰的 ==[存在]== 合併，代表 ==[每單位量]== 的分子、分母物件的總數 : 80棵樟樹、40棵椰樹 (160棵樟樹已事先除以2)
   第三句 ==[每單位量]== 、 ==[存在]== 合併成 ==[存在]==
   條件子句剩 ==[每單位量]== 、 ==[起始端]== 、 ==[存在]== ，根據特殊規則，先從 ==[存在]== 、 ==[起始端]== 判斷是否加or減(因為端點)，兩type合併成新的 ==[存在]== 。最後再將 ==[每單位量]== 、 ==[存在]== 得到公路長度、總椰樹、總樟樹，並根據問句給答案
   
   :::

   ::: spoiler 每8人一橫列的隊伍,要通過閱兵臺,從頭列走到末列需8分鐘,而各橫列相距32公尺,步行分速240公尺,求人數
   每8人一橫列的隊伍 -> ==[每單位量]== 
   要通過閱兵臺 -> ==[敘述句]== 
   從頭列走到末列需8分鐘 -> ==[距離時間]== 
   而各橫列相距32公尺 -> ==[每單位量]== 
   步行分速240公尺 -> ==[速率]== 
   求人數 -> ==[問人數]== 
   
   `算式: [(8*240)/32+1]*8 = 488`
   因為有"從頭列走到末列"有**起始端**的概念在，會有額外+1的運算
   (這題解題方式可能無法通用)
   
   句子中有 ==[距離時間]== 、 ==[速率]== 存在且不管是否相鄰，就合併。依 ==[距離時間]== 是給距離or時間就成新type ==[時間]== or ==[長度]==
   句子成 : ==[每單位量]== 、 ==[長度]== 、 ==[每單位量]== 、 ==[問人數]==
   剩下 ==[每單位量]== 、 ==[長度]== 、 ==[每單位量]== 就依裡面的單位做運算求最後答案
   :::
        
---
        
- 算錯
    ::: spoiler 某數的立方除以5,誤作某數的3倍除以5,得答為6,求正確的答案? : 200
    某數的立方除以5 -> ==未知數==
    誤作某數的3倍除以5 -> ==未知數== (誤算)
    得答為6 -> ==答案==
    求正確的答案? ==問多少== (原算式)
    
    第一句 ==未知數== : $x^3/5$
    第二句 ==未知數== 是個top type，其中一個子type為 ==誤算== ，做的事和前一句一樣只是特別註記為"誤算"的狀態。 ==未知數== (誤算) : $3x/5$
    定義一條規則: ==未知數== + ==答案== = ==方程式== : $3x/5 = 6$
    跑完所有條件句後針對 ==方程式== 求解。最後再根據 ==問多少== 的子type ==原算式== 找剩下的 ==未知數== 子句去做計算
    
    原: ==未知數== 、 ==未知數== 、 ==答案== 、 ==問多少==
    後: ==未知數== 、 ==方程式== 、 ==問多少==
    :::
    
    ::: spoiler 某題除算為某數除以15,結果甲寫答數為1180,其中百位錯誤,而乙寫答數1090,但十位錯誤,求某數是多少? : 16200
    某題除算為某數除以15 -> ==未知數==
    結果甲寫答數為1180 -> ==答案==
    其中百位錯誤 -> ==位數== (誤算) 
    而乙寫答數1090 -> ==答案==
    但十位錯誤 -> ==位數== (誤算)
    求某數是多少? -> ==問多少==
    
    第一句 ==未知數== : $x/15$
    ==答案== 、 ==位數== 、 ==答案== 、 ==位數== 要特別處裡。 最後四個合併成正確的答數 ==答案==
    原: ==未知數== 、 ==答案== 、 ==位數== 、 ==答案== 、 ==位數== 、 ==問多少==
    新: ==未知數== 、 ==答案== 、 ==問多少==
    ==未知數== + ==答案== = ==方程式== : $x/15 = 1080$ 求解
    :::
    
---
    
- 紙
    - 剪成幾塊
        ::: spoiler 10張圖畫紙相疊對齊,用剪刀剪二處(不交叉),可剪成幾張? : 30
        10張圖畫紙相疊對齊 -> ==存在==
        用剪刀剪二處(不交叉) -> ==剪紙== ?
        可剪成幾張? -> ==問多少==
        
        特例。從 ==剪紙== 的"二處"、"不交叉"事先知道剪成3塊
        直接$10*3$得到答案
        :::
        
    - 重疊問題 
        ::: spoiler 白紙長30公分,共40張,用漿糊黏貼,每兩張接口處相疊2公分,黏貼後總長為幾公尺? : 1122
        白紙長30公分 -> ==屬性==
        共40張 -> ==存在==
        用漿糊黏貼 -> ==表達語境==
        每兩張接口處相疊2公分 -> ==相疊處==
        黏貼後總長為幾公尺? -> ==問多少==
        
        忽略 ==表達語境== ，剩下 ==屬性== 、 ==存在== 、 ==相疊處== 。三個type不適合合併
        ==屬性== : 先不計算，只"30公分"收到紙下(tree)
        ==存在== : "40張"收到紙下(tree)，算出總長: $30*40=1200$
        ==相疊處== : "相疊2公分"收到紙下(tree)，算相疊處: $(40-1)*2=78 
        若tree同時有"總長"、"相疊處"node時，就兩值相減變一個"總長" node
        :::
        
        ::: spoiler 20公分的紙張用漿糊黏貼若干張,成為全長7點58公尺,求紙張有幾張?(相疊交接處為2公分): 42
        20公分的紙張用漿糊黏貼若干張 -> ==屬性== (未知數)
        成為全長7.58公尺 -> ==屬性==
        求紙張有幾張? -> ==問多少==
        (相疊交接處為2公分) -> ==相疊處==
        
        先將子句順序調換位置，維持問句在最後一個的樣子。
        新: ==屬性== 、 ==總數== 、 ==相疊處== 、 ==問多少==
        
        第一句 ==屬性== 有子type ==未知數== "20公分"、"x張"收紙下，算總長: $20* x$ 
        第二句 ==屬性== : 知道是"總長"意思，但tree已有"總長"資訊，因此兩個"總長"以等號連結成同一概念: $20* x=7.58$
        第三句 ==相疊處== "2公分"收到紙下(tree)，算相疊處: $(x-1)* 2$
        現在tree同時有"總長"、"相疊處"node，就兩值相減，並發現有未知數存在解未知數
        :::