
问:Excel 如何生成两个字母随机不重复排序
- 答:可以用公式先将所有组合产生出来放在A列。
然后在B列用公式随机抽取A列中的组合。
A1公式:
=CHAR(97+INT(MOD(ROW()-1,17576)/676))&CHAR(97+INT(MOD(ROW()-1,676)/26))&CHAR(97+MOD(ROW()-1,26))
将公式向下复制到17576行。
然后用复制、选择性粘贴、数值,将A列公式结果固定下来。
B2公式:
=INDEX(A:A,SMALL(IF(COUNTIF(B$1:B1,A$1:A$17576),65536,ROW($1:$17576)),1+INT(RAND()*(17577-ROW()))))
公式以CTRL+SHIFT+ENTER三键结束。
将公式向下复制。你要多少个就复制多少行。
按F9可以随机改变选取的组合,保证没有重复。 - 答:嵌套2个for循环
里面写一个判断i和j是否相等
可以把字母转成ascii码,这样方便循环
问:Java中如何随机生成24个不重复的字母?
- 答:boolean 默认false while循环是 字符选中相同的时候 继续循环 直到不重复 退出循环
问:c语言随机生成20个不重复的字母,用到数组
- 答:#include <time.h>
int main()
{
int i =0;
int j = 0;
char letter[20];
srand((unsigned)time(NULL));
for(i = 0; i < 20; i++)
{
letter[i] = rand() % 27 + 97;
j = 0;
for(j = 0;j < 20;j++)
{
if(letter[i] == letter[j])
{
i --;
//如果有相等的元素,重新生成这个位置上的元素
}
}
}
return 0;
} - 答:你这个查找相同元素的循环是错误的,第一个永远相等,是死循环,应排除第一个,其次可以优化循环,使j<i,而不用循环20次,因为后面的位置还没有被写入