随机排序怎么做?我觉得很难的一个问题,很怪的要求

来源:百度知道 编辑:UC知道 时间:2024/05/25 14:48:23
C#

现有一个1000个整数组成的数组组,次序是从小到大,想把它的顺序打乱
打乱后要求达到这样的条件

每个数的打乱后的前一数和后一个数不是原来数组中它所在的位置的前100个数和后100个数中的任意一个数

100以前的只考虑它的前一位和后一位不是它原来所在位置以前的数,
例如,50,它的前一位和后一位数就不能是50以前的数同时也不能是50到150的数;
900以后的只考虑它的前一位和后一位不是它原来所在位置以后的数,
例如,950,它的前一位和后一位数就不能是950以后的数同时也不能是850到950的数;

其它的数
如123,它的前一位和后一位不能是23到223之间的数

可达到这样的条件,但顺序不是随机的:
数组[000],数组[101],数组[202], ... ,数组[808],数组[909],
数组[001],数组[102],数组[203], ... ,数组[809],数组[910],
...
数组[099],数组[200],数组[301], ... ,数组[907],
数组[100],数组[201],数组[302], ... ,数组[908]。

告诉你,你最好取消这个打算 - -||