wyz20010429 发表于 2021-9-6 20:58:47

问题已解决,萌新不会删帖

本帖最后由 wyz20010429 于 2021-9-7 10:48 编辑

void shuffle(int array[], int length)
{
      int index, temp, i;

      srand(time(NULL));
      for (i = 0; i < length; i++)
      {
                index = rand() % (length - i) + i;
                if (index != i)
                {
                        temp = array;
                        array = array;
                        array = temp;
                }
      }
}
各位大佬,这是个c语言洗牌的函数,我想问下就是index = rand() % (length - i) + i;这句话讲index的范围限制在i到length-i-
1之间,这样的设定是为什么呀?最开始是0-54,然后1-53,然后是2-52,不断缩小这是为什么呀?

wp231957 发表于 2021-9-6 20:58:48

为啥问题解决了就要删帖,那论坛还有存在的必要了吗???

wyz20010429 发表于 2021-9-7 10:35:16

wp231957 发表于 2021-9-7 07:25
为啥问题解决了就要删帖,那论坛还有存在的必要了吗???

是这样的,我本意是不想占用占用公共资源,不太了解论坛规定,不好意思呀

wyz20010429 发表于 2021-9-7 10:35:48

wp231957 发表于 2021-9-7 07:25
为啥问题解决了就要删帖,那论坛还有存在的必要了吗???

我把问题重新发出来

wyz20010429 发表于 2021-9-7 10:38:20

wp231957 发表于 2021-9-7 07:25
为啥问题解决了就要删帖,那论坛还有存在的必要了吗???

这个问题实际没解决,昨天我以为我想明白了,今天我反应过来,我没想明白
页: [1]
查看完整版本: 问题已解决,萌新不会删帖