int rand7() { int i; do{ i = 5 * (rand5() - 1) + rand5(); //产生[1,25]的整数区间 }while(i > 21); //将[1,25]整数区间控制于[1,21] return i%7 + 1; //将[1,21]映射到[1,7] }