--- 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,就兩值相減,並發現有未知數存在解未知數 :::