Re: [心得] 樸克牌13支
看板C_and_CPP (C/C++)作者stonehomelaa (cousin)時間18年前 (2006/07/21 17:31)推噓7(7推 0噓 2→)留言9則, 5人參與討論串2/3 (看更多)
※ 引述《papalun (謎樣人物)》之銘言:
: for (i=0;i<52;i++)
: {
: j=rand()%52;
: temp=A[i];
: A[i]=A[j];
: A[j]=temp;
: }
本來我也認為打亂陣列是這麼做的
不過之前看了深度學習C++網站上的試讀章節
裡面範例有提到兩種做法
其一是陣列元素由後往前與其前的隨機位置對調
for (i = 52 - 1; i > 0; i--)
{
j = rand() % (i+1);
if(i == j) continue;
temp = A[i];
A[i] = A[j];
A[j] = temp;
}
另一個是由前往後與剩餘元素對調,但最後一個不須再對調
for (i = 0; i < 52 - 1; i++)
{
j = rand() % (52-i);
if(j == 0) continue;
temp = A[i];
A[i] = A[j];
A[j] = temp;
}
而書上說原po的做法會造成錯誤的機率分佈
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.130.83.81
推
07/21 18:28, , 1F
07/21 18:28, 1F
推
07/21 23:19, , 2F
07/21 23:19, 2F
推
07/22 00:12, , 3F
07/22 00:12, 3F
推
07/22 00:15, , 4F
07/22 00:15, 4F
推
07/22 00:27, , 5F
07/22 00:27, 5F
※ 編輯: stonehomelaa 來自: 220.130.83.81 (07/22 01:11)
推
07/22 01:11, , 6F
07/22 01:11, 6F
→
07/22 01:16, , 7F
07/22 01:16, 7F
→
07/22 01:17, , 8F
07/22 01:17, 8F
推
07/22 05:04, , 9F
07/22 05:04, 9F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章