第八次:陣列程式設計實作(4)


陣列程式設計實作-隨機世界真美麗

教學影片

隨機數(亂數)

隨機數(亂數)的生活應用

大樂透彩卷抽獎的程式.製作遊戲角色隨機移動等.

Scratch隨機數範例

 

 

牛刀小試

*得到不重複的結果的機率是很低的(對於10萬個數字來說,機率大約為1/2755)


實作1:不重覆隨機取陣列值(隨機選取10個十以內的數放進清單,但不能重複)

程式執行結果

提示1:隨機重複的數

演算法分析1

1.建立清單-選選

2.初始化設定:點綠旗後先清空清單項目(刪除選選清單所有項目)

3.重複10次

4.添加隨機取數1到10到選選清單

程式執行結果

提示2:隨機不重複的數

要解決這個問題,第一種方法,就是在加入前,先判斷這個清單裡面是否有這個數字,沒有就加入,直到裡面填滿10個數,因為不相同,所以也就是1-10範圍內的隨機且不同的10個數了。此外要建一個temp的變數,為了判斷是否存在這個值,需要先將這個隨機值保存下來。

演算法分析2

1.建立「temp」變數

2.變數「temp」設定為隨機取數1到10

3.判斷式:如果抽出來的數(TEMP變數)沒有出現在選選清單內(清單選選包含temp變數?不成立),那麼就新增到選選的清單中(添加temp變數到選選清單). 重複執行直到清單的項目數有10個為止(重複直到選選清單的長度=10).停止程式

程式執行結果

檔案存為108****-4scratch專案.sb3


思考問題:還有其他解決的方法嗎?

檔案存為108****-4+scratch專案.sb3

參考網站

http://sfs.tw/index/c/420

http://sfs.tw/content/index/14724

https://cyc-channel.gitbook.io/scratch/de-shi-jie-zhen-mei

https://cloud.tencent.com/developer/article/1627567

http://hotdogandhomework.blogspot.com/2020/


作業上傳到雲端

1.登入雲端作業繳交網.輸入帳密

運算思維大挑戰