若要定义一个数组,使里面数的顺序不重复且随机,如扑克牌洗牌,52张牌的数组随机给每一个元素1-52的数字。
优化前方案:
定义一个i从1-52的for循环,里面写一个do-while语句,生成随机数x直到array[x]不等于0,把i的值赋给x。
缺点:随着被赋值的数组元素增加,随机数满足array[x]不为0需要的次数会大大增加。
优化后方案:
把数组元素按正确顺序赋值,然后让数组元素随机交换52次。
若要定义一个数组,使里面数的顺序不重复且随机,如扑克牌洗牌,52张牌的数组随机给每一个元素1-52的数字。
优化前方案:
定义一个i从1-52的for循环,里面写一个do-while语句,生成随机数x直到array[x]不等于0,把i的值赋给x。
缺点:随着被赋值的数组元素增加,随机数满足array[x]不为0需要的次数会大大增加。
优化后方案:
把数组元素按正确顺序赋值,然后让数组元素随机交换52次。