Re: [問題] 亂數問題
pid_max 大部分就是32767 或者到65535?
算是很小的數字吧...
#include <pthread.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
void * msrand(void * data);
struct p{
int * data;
int id;
};
int main(){
pthread_t pt[5];
struct p pp[5];
int d[5]={7919,22307,48611,104729,287117};
for(int i=0;i<5;i++){
pp[i].data=&d[0];
pp[i].id=i;
pthread_create(&pt[i],NULL,msrand,&pp[i]);
}
for(int i=0;i<5;i++){
pthread_join(pt[i],NULL);
}
printf("%d %d %d %d %d\n",d[0],d[1],d[2],d[3],d[4]);
}
void * msrand(void * data){
struct p * pp = (struct p *) data;
int * ptr=pp->data;
int self=pp->id;
for(int i=0;i<100;i++){
srand(ptr[(self+1)%5]);
ptr[self]^=rand();
ptr[self]<<13;
usleep(10);
sched_yield();
}
}
跟time沒有關係
你這樣跑一次之後,就可以得到五個int的...數...
亂不亂我不能證明...
這邊我還是用到了srand跟rand
因為...如果想自己寫數學式子弄亂數的話...生到最後都會變成一個constant...
沒有pthread的話要怎麼辦...我就不知道了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.123.102.254
→
03/12 23:43, , 1F
03/12 23:43, 1F
推
03/13 09:20, , 2F
03/13 09:20, 2F
→
03/13 09:21, , 3F
03/13 09:21, 3F
→
03/13 09:22, , 4F
03/13 09:22, 4F
→
03/13 09:22, , 5F
03/13 09:22, 5F
→
03/13 09:23, , 6F
03/13 09:23, 6F
→
03/13 09:24, , 7F
03/13 09:24, 7F
→
03/13 09:24, , 8F
03/13 09:24, 8F
→
03/13 09:25, , 9F
03/13 09:25, 9F
→
03/13 09:33, , 10F
03/13 09:33, 10F
→
03/13 09:34, , 11F
03/13 09:34, 11F
討論串 (同標題文章)
Programming 近期熱門文章
PTT數位生活區 即時熱門文章