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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4508|回復: 14
收起左側

為何單片機C語言產生的隨機數總是固定數?

  [復制鏈接]
ID:825883 發表于 2020-10-25 08:08 | 顯示全部樓層 |閱讀模式
#include<reg51.h>
#include<stdlib.h>
sbit c=P2^0;
void main()
{
unsigned char a[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
P0=a[rand()%10];
c=0;
while (1)
        ;
}
以上是源程序,P0連接共陽數碼管,P2.0控制數碼管陽極,隨機數函數產生一個隨機數給P0,應該是每次數都不一樣,現在是每次運行都產生7,無論重啟還是開機。


回復

使用道具 舉報

ID:275826 發表于 2020-10-25 09:34 | 顯示全部樓層
還要播種呀
回復

使用道具 舉報

ID:822755 發表于 2020-10-25 11:25 | 顯示全部樓層
因為用的是偽隨機數,隨機數種子,每次開機都一樣。要想辦法每次開機能產生不同的隨機種子。
srand(int )是設置隨機數種子的。
回復

使用道具 舉報

ID:825883 發表于 2020-10-25 11:54 | 顯示全部樓層
KongQuan 發表于 2020-10-25 11:25
因為用的是偽隨機數,隨機數種子,每次開機都一樣。要想辦法每次開機能產生不同的隨機種子。
srand(int ) ...

回復

使用道具 舉報

ID:342954 發表于 2020-10-25 12:00 | 顯示全部樓層
加一個時鐘
回復

使用道具 舉報

ID:638800 發表于 2020-10-25 13:47 | 顯示全部樓層

1

1

2

2

3

3

評分

參與人數 1黑幣 +40 收起 理由
admin + 40 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:213173 發表于 2020-10-25 16:33 | 顯示全部樓層
樓主這樣寫程序根本看不出來數字變化,換一種方式寫便于觀察。
無標題.jpg

  1. #include<reg51.h>
  2. #include<stdlib.h>
  3. unsigned char a[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  4. unsigned int i;

  5. void main()
  6. {
  7.         while(1)
  8.         {
  9.                 P0=a[rand()%10];
  10.                 i=30000;
  11.                 while(i--);
  12.         }
  13. }
復制代碼



回復

使用道具 舉報

ID:420836 發表于 2020-10-26 05:04 | 顯示全部樓層
這是一個很好的問題,我也從你們那里學到了。
回復

使用道具 舉報

ID:440403 發表于 2020-10-26 07:25 | 顯示全部樓層
我們程序產生的隨機都是偽隨機的,也就是需要一個東西來改變它,一般叫做隨機數種子,高級語言一般使用系統時間作為隨機數種子
回復

使用道具 舉報

ID:86450 發表于 2020-10-26 08:19 | 顯示全部樓層
偽隨機
回復

使用道具 舉報

ID:451718 發表于 2020-10-26 17:30 | 顯示全部樓層
這么好的帖子,標記一下。 51黑有你更精彩!
回復

使用道具 舉報

ID:831355 發表于 2020-10-27 10:52 | 顯示全部樓層
偽隨機數每次開機都一樣,要使其產生不一樣的種子,要用程序改變他
回復

使用道具 舉報

ID:560467 發表于 2020-10-27 13:20 | 顯示全部樓層
rand是偽隨機數,你需要加入外部中斷才能做到真正的隨機數
回復

使用道具 舉報

ID:639133 發表于 2020-10-27 16:50 | 顯示全部樓層
要放隨機數種子srand((unsigned) time(NULL) );的,放了就是根據時間的隨機
回復

使用道具 舉報

ID:828160 發表于 2020-10-27 21:21 | 顯示全部樓層
我也挺讓人 發表于 2020-10-27 16:50
要放隨機數種子srand((unsigned) time(NULL) );的,放了就是根據時間的隨機

時間是固定的,不是隨機,用AD測空氣,這樣才是隨機
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表