int rand7();//返回一个1-7的数 int rand10(){ int i = rand7()-1;//0-6 int j = rand7()-1;//0-6 i = i*7+j; //产生一个00-66(7进制数,相当于10进制的0-48) //其中0-48出现的概率相等。 if(i>=40) return rand10(); else//0-39出现的概率相等 return i%10 + 1; //i%10为个位 }