PCDVD數位科技討論區

PCDVD數位科技討論區 (https://www.pcdvd.com.tw/index.php)
-   疑難雜症區 (https://www.pcdvd.com.tw/forumdisplay.php?f=34)
-   -   詢問 關於 C語言/VC6.0 隨機分配問題 (https://www.pcdvd.com.tw/showthread.php?t=1189414)

奇木拉 2021-09-22 12:34 PM

詢問 關於 C語言/VC6.0 隨機分配問題
 
VC6 如何在 一個固定的整數 分配6個值 給 A B C D E F 六個隨機數值.

例如 例如整數是15
然後隨機分配給 A B C D E F
A = 2
B = 3
C = 3
D = 2
E = 4
F = 1
總和 = 15

這樣VC6 哪個涵式可以實現 :confused:

linkt 2021-09-22 05:52 PM

用枚舉跑幾個迴圈答案就出來了

冰的啦魔王大人 2021-09-22 11:35 PM

另外問一下,隨機亂數很多人知道,
但是有"隨機排序"這種東西嗎?

a9607 2021-09-23 12:02 AM

引用:
作者冰的啦魔王大人
另外問一下,隨機亂數很多人知道,
但是有"隨機排序"這種東西嗎?


排序 跟 隨機 本質上好像是互斥的

你的意思是會不會是指「隨機分佈」?

:ase

NTC_TW_IT 2021-09-23 01:04 AM

建立一個長度為6的陣列
然後跑回圈15次取亂數,亂數區間為0-5,看跑出來的直屬於哪個offset,就把offset的直抓出來加1
最後把陣列走過一輪即可
如果要偷懶,那麼可以透過ascii code去把0的位置切為A即可(65+index)

奇木拉 2021-09-23 08:46 AM

引用:
作者NTC_TW_IT
建立一個長度為6的陣列
然後跑回圈15次取亂數,亂數區間為0-5,看跑出來的直屬於哪個offset,就把offset的直抓出來加1
最後把陣列走過一輪即可
如果要偷懶,那麼可以透過ascii code去把0的位置切為A即可(65+index)


代碼:
// 長度為6的陣列
char RN[6] = {0};

int main()
{
	//迴圈跑15次
	for(i=0; i < 15; i++ )
	{
		//亂數 0-5
		int RNN=rand()%6;
	}
	
	return 0;
} 

你描述的後面我看不懂 :confused:

冰的啦魔王大人 2021-09-23 01:56 PM

引用:
作者a9607
排序 跟 隨機 本質上好像是互斥的

你的意思是會不會是指「隨機分佈」?

:ase



就好比有一群隨機的人, 隨機地排成一列,
排列的結果(不同人組合的排列)為隨機排列.

27681049 2021-09-23 02:47 PM

如果不能為零
A->F
A 最大值為9 取亂數
B 最大值為9 - A 取亂數
...
如果能為零
A->F
A 最大值為15 取亂數
B 最大值為15 - A 取亂數
...

如果可以有負數...
我不會....

a9607 2021-09-23 05:52 PM

引用:
作者冰的啦魔王大人
另外問一下,隨機亂數很多人知道,
但是有"隨機排序"這種東西嗎?

引用:
作者冰的啦魔王大人
就好比有一群隨機的人, 隨機地排成一列,
排列的結果(不同人組合的排列)為隨機排列.


所以說 排序 跟 排列 一字之差差很多啊…

:ase

NTC_TW_IT 2021-09-23 06:06 PM

引用:
作者奇木拉
// 長度為6的陣列
char RN[6] = {0};

int main()
{
//迴圈跑15次
for(i=0; i < 15; i++ )
{
//亂數 0-5
int RNN=rand()%6;
}

return 0;
}

你描述的後面我看不懂 :confused:

int main (int argc,char *argv){
unsigned char RN[6] = {0};
int i=0,array_size=sizeof(RN)/sizeof(char);

srand( (unsigned)time( NULL ) );
for( i=0; i < 15;i++ )
RN[rand()%array_size]+=1;
for( i=0; i < array_size ; i++)
printf("%c = %d\n",65+i,RN[i]);
return 0;
}

勿忘亂數種子阿


所有的時間均為GMT +8。 現在的時間是11:06 PM.

vBulletin Version 3.0.1
powered_by_vbulletin 2022。