• 關於
  • 課程
    • 線上課程
    • 營隊課程
      • 人工智慧與機器學習實作2日營
      • 人工智慧與Kaggle 競賽實作3日營
      • 人工智慧與AI 醫療實作4日營
    • 2021寒假
      AI醫療專題實作4日營
    • 2021寒假
      NVIDIA Jetbot實作3日營
  • AI趨勢專欄
  • CodeCombat
  • 會員中心
    • 我的帳號
    • 課程清單
    • 我的訂單
    • Register登入
AI4kidsAI4kids
  • 關於
  • 課程
    • 線上課程
    • 營隊課程
      • 人工智慧與機器學習實作2日營
      • 人工智慧與Kaggle 競賽實作3日營
      • 人工智慧與AI 醫療實作4日營
    • 2021寒假
      AI醫療專題實作4日營
    • 2021寒假
      NVIDIA Jetbot實作3日營
  • AI趨勢專欄
  • CodeCombat
  • 會員中心
    • 我的帳號
    • 課程清單
    • 我的訂單
    • Register登入

CodeCombat

  • 首頁
  • 文章
  • CodeCombat
  • 【CodeCombat運算思維】數學方法+程序方法巧解數學題

【CodeCombat運算思維】數學方法+程序方法巧解數學題

  • 發布 by service_1
  • 分類 CodeCombat
  • 日期 2021-02-24
  • 評論 尚無評論

先看一道小學國際數學奧林匹克難度計算題

有兩類三位數,其中A類滿足各個數字上的數的和是19,B類滿足各個數字上的數的和為8,請問A類數更多還是B類數更多?多出幾個?

一般數學解法

大部分學生首先想到的是列舉法,分析滿足A條件(100A + 10B + C = 19)和B條件(100A + 10B + C =8)的所有數的列表(如下圖),這是一項比較費時費力的方法,而且可能因為馬虎會少列幾個數字而導致答案錯誤。

改良數學解法
我們仔細觀察, A的三位數數位之和是19 , B的三位數數位之和是8 ,兩者加起來19+8 = 27 ,正好是9 + 9 + 9 ,這就代表和為8的三位數(ABC)都正好有一個和為19的數對應(9-A 9-B 9-C) 。  

另外,我們從三個位數和為19的數比較三個數位和為8的數,發現和為19的三位數多了首位是9的數,這正好是9個,(當A=0時三位數退化成兩位數不符合條件),因此得出A類數更多, A類數比B類數多出9個。

一般程序解題

在了解解題方法後,我們用Python程序來解答這道題。把題目條件的邏輯寫清楚,程序上用到了CodeCombat電腦科學4的主要知識點如For循環、遍歷、列表、算數運算等知識點, 16行程式碼(如下圖)寫好後,運行馬上得出符合A類條件的數是45個, B類條件的數是36個。

改良算法解題

我們還可以把題目的邏輯進一步優化,把16行程式碼簡化成1行程式碼,輸入程序,馬上得出正確答案為9.

print (sum ([1 if s==19 else (-1 if s==8 else0) for s in [x//100 + x//10%10 + x%10 for x in range (100,1000)]]))

針對這道數學題,程序的解法更通用,因為程序可以處理任何三位數的和問題。而精巧的數學解法發現了這道題條件的特殊性,給出了本題的更簡潔的解法。

數學方法是根基,電腦的強項是強大的計算能力,數學思維結合電腦的強大計算能力,往往事半功倍,這也是我們鼓勵同學們學習程式,讓思考問題和解決問題多了一個維度,追求解法的優化和改進。

  • 分享:
service_1

    上一篇文章

    美國中小學停課,20個免費優質在線學習平台推薦!
    2021-02-24

    下一篇文章

    採用CodeCombat的學校遍及全球 亞太地區尤甚
    2021-02-24

    您可能還喜歡

    未命名-3_工作區域 1
    CodeCombat關卡等级的對應圖
    24 2 月, 2021
    22-1
    火爆全球的青少年程式編寫史詩大片《Ozaria傳奇》
    24 2 月, 2021
    images
    Ozaria 2020 程式編寫一小時 榮登全球最受歡迎活動
    24 2 月, 2021

    發表評論 取消回覆

    發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

    文章類別

    • AI人工智慧
    • AI與生活
    • CodeCombat
    • 機器學習
    • 深度學習
    • 監督式學習
    service@ai4kids.ai
    (04)2285-9159
    • Facebook

    關於團隊

    Youtube頻道

    課程影像

    聯繫我們

    開課合作

    教師群

    講師招募

    夥伴招募

    合作結盟

    隱私權與服務條款

    AI4kids 使用者條款

    AI 4 kids

    政府認證
    教育部 高級中等教育階段學生學習歷程資料庫 檢定證照發照單位
    經濟部工業局 109年度人工智慧技術教育訓練服務能量登陸機構

    課程合作場域
    台中健腦中心Come To Learn | 資策會數位教育研究所 台中市南屯區公益路二段51號B1
    中科智慧機器人自造基地 臺中市大雅區科雅路6號
    南科AI_ROBOT自造基地 台南市新市區南科三路19號4樓之1

    © Copyright 2020 ai4kids.ai

    使用Google帳戶登入:

    連結至 Google

    登入 AI4kids 帳號

    忘記密碼?

    尚未註冊會員? 註冊

    註冊會員

    已經註冊會員了? 登入