close
標題:

VB 問題 測試隨機亂數

發問:

可以幫忙解答嗎 作業三 一、測試隨機亂數出現的機率是否相同 1.設計隨機亂數1~20出現的機率是否相同。 2.隨機過程請設定至少2000次,也就是取2000次的亂數,看1~20出現的次數分佈。 二、設計計時數學題目比賽 1. 三位數的加減法可供選擇( 隨機產生) 2. 每次做完一題及告知受測者正確答案及累積的答對及答錯題數 3. 每次測試時間為3 分鐘以內。 提示:Interval 1000 相當於1 秒鐘 4. 也可以以系統時間來計時。

最佳解答:

第一題: Dim num(1 To 20) As Integer Private Sub Command1_Click() For i = 1 To 20000 Randomize x = Fix(Rnd * 20) + 1 ' 取1-20亂數 Do While z = 21 x = Fix(Rnd * 20) + 1 ' 如果出現21就重選到不是21為止 Loop num(x) = num(x) + 1 Next i For i = 1 To 20 Print "(" & i & ")" & num(i) Next i End Sub 因為2000太小 所以我用2萬比叫看的出來差值 第二題 Dim a, True1, Felse1 As Integer Dim ans As Integer Private Sub Command1_Click() If Val(Text1.Text) = ans Then True1 = True1 + 1 Else Felse1 = Felse1 + 1 End If Label2.Caption = "True" & "=" & True1 Label3.Caption = "Felse" & "=" & Felse1 mather ans a = 0 End Sub Private Sub Form_Load() Timer1.Interval = 1000 Label2.Caption = "True=0" Label3.Caption = "Felse=0" True1 = 0 Felse1 = 0 mather ans End Sub Private Sub Timer1_Timer() a = a + 1 If a = 5 Then mather ans If Val(Text1.Text) = ans Then True1 = True1 + 1 Else Felse1 = Felse1 + 1 End If Label2.Caption = "True" & "=" & True1 Label3.Caption = "Felse" & "=" & Felse1 a = 0 End If End Sub Public Sub mather(ans As Integer) Randomize num1 = Fix(Rnd * 899) + 100 Do While num1 = 1000 num1 = Fix(Rnd * 899) + 100 Loop num2 = Fix(Rnd * 899) + 100 Do While num2 = 1000 num2 = Fix(Rnd * 899) + 100 Loop mathstr = Fix(Rnd * 10) + 1 Do While mathstr = 11 mathstr = Fix(Rnd * 10) + 1 Loop If mathstr < 5 Then Label1.Caption = num1 & "+" & num2 ans = num1 + num2 Else Label1.Caption = num1 & "-" & num2 ans = num1 - num2 End If End Sub

其他解答:

aa.jpg

 

此文章來自奇摩知識+如有不便請留言告知

arrow
arrow

    ccf83dy60d 發表在 痞客邦 留言(0) 人氣()