# Weekly Meeting 3/23 --- ## Outline - 分類進度 - 題目待討論 - 應用題程式 --- ## 分類進度 * 17221(Training 6674, Test 10547) * 皇穀 2928 * 若芸 3020 * 俊達 2123 --- ## 題目待討論 ---- - "大約"都是取概數到百位? - 小華存了188元,小香存了298元,兩人的錢合起來大約有多少元? - 188+298=486 - 答:500元 ---- - 分到第二大類但要考慮對摺 - 一條緞帶對摺後和5個迴紋針一樣長,這條緞帶原來和幾個迴紋針一樣長? ---- - 非典型速率 - 哥哥走一步的長是45公分,弟弟走一步的長是39公分,背對背往相反方向各走18步後,兩人相距多少公分? --- ## 應用題程式 ---- ### `QuestionPatternForm.cs` ```csharp=730 //"船速", "水速", "順水速度", "逆水速度", "距離", "順水時間", "逆水時間" //"順水速度=船速+水速", //"逆水速度=船速-水速", //"距離=順水速度*順水時間", //"距離=逆水速度*逆水時間" var 新參數字典 = new Dictionary<string, double>(); 新參數字典["船速"] = 21.0; 新參數字典["水速"] = 3.0; 新參數字典["順水時間"] = 1.2; 新參數字典["逆水速度"] = -1; 新參數字典["距離"] = -1; 新參數字典["順水速度"] = -1; 新參數字典["逆水時間"] = -1; var replaced_statements = generate_replaced_statements(公式, 參數清單); var key_variable = "逆水時間"; while (true) { var flag = false; if (新參數字典[key_variable] != -1) { break; } foreach(var statement in replaced_statements) { flag = false; var counter = 0; var char_list = statement.Split("+-*/=".ToCharArray()); var target_variable_char = 'A'; foreach(var n in char_list) { if (新參數字典[參數清單[(n.ToCharArray()[0]) - 'a']] == -1) { target_variable_char = n.ToCharArray()[0]; counter--; } } if(counter==-1) { flag = true; var tmp = statement; tmp = tmp.Solve(target_variable_char.ToString()).Simplify().ToString(); for(var i = 0 ; i < 參數清單.Count ; i++) { tmp = tmp.Replace(((char)('a' + i)).ToString(), 新參數字典[參數清單[i]].ToString()); } Console.WriteLine(); Console.WriteLine("正在計算: " + 參數清單[target_variable_char-'a']); Console.WriteLine(tmp); Entity expression = tmp.Substring(1, tmp.Length - 2); var result = expression.EvalNumerical(); Console.WriteLine(result); Console.WriteLine(); 新參數字典[參數清單[target_variable_char - 'a']] = (double)result; break; } } if(!flag) { //declare un-resolveable Console.WriteLine("本題無解"); break; } } ``` ---- ```csharp=820 private List<String> generate_replaced_statements(List<String> statements, List<String> variables) { // 0 1 2 3 4 5 6 // a b c d e f g //string[] 參數清單 = new string[] { "船速", "水速", "順水速度", "逆水速度", "距離", "順水時間", "逆水時間" }; //string[] 公式 = new string[] { "順水速度=船速+水速", "逆水速度=船速-水速", "距離=順水速度*順水時間", "距離=逆水速度*逆水時間" }; List<int> statement_counter = new List<int>(); List<String> replaced_statements = new List<String>(); foreach (var statement in statements) { var tmp = statement; for (var i = 0; i < variables.Count; i++) { var variable = variables[i]; tmp = tmp.Replace(variable, ((char)('a' + i)).ToString()); } replaced_statements.Add(tmp); } return replaced_statements; } ``` ----
{"metaMigratedAt":"2023-06-15T21:38:57.949Z","metaMigratedFrom":"YAML","title":"Weekly Meeting 3/23","breaks":true,"slideOptions":"{\"transition\":\"slide\"}","contributors":"[{\"id\":\"325cb9a2-2cc4-4308-8e12-b079922d655c\",\"add\":97,\"del\":0},{\"id\":\"62e36997-69dd-4830-b567-1b6decba8ab1\",\"add\":2905,\"del\":837},{\"id\":\"35dabed6-7dfb-4ac3-8e6a-858efe91a445\",\"add\":1572,\"del\":377}]"}
    141 views
   Owned this note