實驗物件隨機分組程式

2021-07-25 08:17:24 字數 1302 閱讀 1418

老師上統計課的時候講了實驗室對實驗小鼠進行隨機分組的方法。

方法有點麻煩,如下:

0. n為總數,m為組數,o為每個小組的最大數量,o=n/m

1. 對每個小鼠進行編號

2. 依次對每個小鼠取隨機數,並把這個隨機數除以組數求餘,餘數為初次分配的組數

3. 對多於數量o的小組,取隨機數求餘的方式隨機確定乙個成員,放到第乙個未滿的小組

4. 重複執行第3步,直到所有組都為o個小鼠,分組完成

#include

#include

#include

#define overflow -1

typedef

struct

group;

void initinput(int * totalamount,int * groupamount) //最開始的輸入環節

else

if(*groupamount<=0)

else

if(*totalamount%*groupamount!=0)

else

printf("\n");

}while(flag==1);

printf("樣本總數為%5d,組數為%5d,每組有%5d個樣本\n",*totalamount,*groupamount,*totalamount/(*groupamount));

}void printgroups(group * groups)

}printf("\n");

}void initworkgroups(group * * groups,int totalamount,int groupamount)

printf("initworkgroups complete\n");

}void destroyworkgroups(group **groups)

free(*groups);

*groups=null;

}void firstalloc(group * groups,int totalamount) //第一輪分配

}void nextalloc(group * groups,int groupsize) //第二輪分配

groups[i].count--;

for(j=1; j<=groupamount; j++)

}printf("組:%2d,隨機數:%5d,求餘:%2d,編號:%d-->group:%2d\n",i,rnd,rndmod,num,j);}}

}int main(int argc,char ** argv)

mysql 隨機分組 Mysql 分組選擇

mysql 分組選擇與group concat 在其他的資料庫中我們遇到分組選擇的問題時,比如在分組中計算前10名的平均分 我們可以使用row number over 比較方便的得到。但是在mysql中,問題就被拋了出來,因為mysql並沒有乙個rownum內建資料元組訪問方式。在這裡我提供三種方式...

瑣記6 隨機分組

將40個數按4個一組隨機分成10組列印出來 實現的方法應該有很多,這裡就介紹一種利用陣列元素的交換來實現的方法。可以利用乙個隨機函式獲取乙個40以內的隨機數作為下標,將它的值與末尾值交換,再獲取乙個39以內的隨機數,再將它的值與倒數第二個數交換,依次交換後就可以得到乙個隨機數組了。include i...

SQL分組獲取隨機記錄

主要是利用row number over 函式以及dbms random.value產生的隨機數大小排序進行,再對固定的排序序號進行統一取值,select id,empno row number over partition by empno order by dbms random.value a...