欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 關于單片機C語言隨機函數rand()的使用 [打印本頁]

作者: 3花木城    時間: 2022-3-24 13:21
標題: 關于單片機C語言隨機函數rand()的使用
#include<STC15W.H>
#include <stdlib.h>           //隨機函數包含
P2=rand()%8;    //獲得0~8之間的隨機數,函數rand()在stdlib.h

假設P2接的LED口,1秒鐘變換一個隨機數,會出現這樣的情況:3  3   2   3   6  3  ……。
但是想要的結果是: 4   3   7    1    6   2   5  這樣,就像音樂播放器一樣,隨機播放,就把所有的歌隨機排了個序,從上到下放一遍。
百度查要加這個參數 seed  ,查來查去也沒看明白

作者: Hephaestus    時間: 2022-3-24 21:38
seed要用定時器的值來賦予的。
作者: daemondong    時間: 2022-3-25 09:06
這個和seed無關,你要的算法叫發。
1 生成 8 以內的隨機數 rand()%8
2 生成 7 以內的隨機數 rand()%7
3 生成 6 以內的隨機數 rand()%6
...
4 生成 1 以內的隨機數,最后一張。

作者: lkc8210    時間: 2022-3-25 09:26
daemondong 發表于 2022-3-25 09:06
這個和seed無關,你要的算法叫
1 生成 8 以內的隨機數 rand()%8
2 生成 7 以內的隨機數 rand()%7

重點是如何保證不重復
作者: daemondong    時間: 2022-3-25 12:49
有很多辦法,拿數組舉例
1 初始化  a[8]={1,2,3,4,5,6,7,8}
2 取 rand()%8 比如 2, 取出 a[2] =2 , 然后 a[2]=a[8]  取出的數就去除了
3 取 rand()%7 比如 2, 取出 a[2] =8 , 然后 a[2]=a[7]  取出的數就去除了
... 直到為1

作者: xws245925587    時間: 2022-3-25 13:07
設置不同的隨機種子,srand()
作者: 3花木城    時間: 2022-3-25 14:09
daemondong 發表于 2022-3-25 12:49
有很多辦法,拿數組舉例
1 初始化  a[8]={1,2,3,4,5,6,7,8}
2 取 rand()%8 比如 2, 取出 a[2] =2 , 然后 ...

我試試
作者: Hephaestus    時間: 2022-3-25 15:00
daemondong 發表于 2022-3-25 09:06
這個和seed無關,你要的算法叫發
1 生成 8 以內的隨機數 rand()%8
2 生成 7 以內的隨機數 rand()%7

不可能無關。rand()產生的隨機數不是天上掉下來的,好好看書吧!
作者: lkc8210    時間: 2022-3-25 15:59
daemondong 發表于 2022-3-25 12:49
有很多辦法,拿數組舉例
1 初始化  a[8]={1,2,3,4,5,6,7,8}
2 取 rand()%8 比如 2, 取出 a[2] =2 , 然后 ...

受教了~




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1