算法創作|隨機出10道題並計算正確率問題解決方法

本文首發於微信公衆號:"算法與編程之美",歡迎關注,及時瞭解更多此係列文章。

問題描述

用文字描述要解決的問題是什麼。

示例:隨機出10道題並計算正確率

輸入:你的結果

輸出:你是否正確並出下一道題,10道題之後計算正確率


解決方案

+-*/四個算數運算符號隨機選擇,n1代表隨機在100數字以內選取一個數字,n2代表隨機在1100以內選取一個數字,n2可能作爲分母,所以不能取到0,其他範圍可以改,並按照格式化輸出的形式編排成一個算數式,用for循環實現循環出10道題。

2.判斷隨機選取的符號,如果是對應的符號,則答案爲對應數字中間爲對應符號計算答案,此答案代表正確答案。

3.設置一個輸出,此輸出爲你的答案,如果選擇123則表示退出,如果繼續作答則繼續計算你的算數式並寫出你的結果,判斷你的結果與正確結果是否相等,如果不相等則進入下一道題,如果相等則進入下一道題,並將正確的題數進行計數,10道題結束之後就計算你在10道題裏面的正確率。

代碼清單 1 DFS求解1100求和問題Python代碼

Courier New字體,23磅行間距

import random

count = 0

for i in range(10):

    fuhaolist = ['+','-','*','/']

    fuhao = random.choice(fuhaolist)

    n1 = random.randint(0,100)

    n2 = random.randint(1,100)

    print(f'{n1}{fuhao}{n2}=')

# 計算正確率

    if fuhao == '+':

        asw = n1 + n2

    elif fuhao == '-':

        asw = n1 - n2

    elif fuhao == '*':

        asw = n1 * n2

    elif fuhao == '/':

        asw = round(n1 / n2,2)

 

    your_asw = eval(input('請輸入答案,退出請按123'))

 

    if your_asw == asw:

        count +=1

    elif your_asw == 123:

        print('退出')

        break

    else:

        print('回答錯誤')

percent = (count/10)*100

print(f'你一共答對了{count}道題,正確率爲{percent}%')


結語

本文章是解決隨機選取問題以及用格式化輸出編排格式,但是就只用到了+-*/四個運算符號,而且所出的題也比較簡單,所以後續還需要更加完善裏面的算法。




主編:歐洋

作者:辜啓書、趙晨曦、文裕龍

稿件來源:深度學習與文旅應用實驗室(DLETA)

本文分享自微信公衆號 - 算法與編程之美(algo_coding)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章