Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - cahmep

Pages: [1]
1
Биржа труда / Re: перемешивание координат
« on: February 18, 2016, 07:25:15 AM »
У меня тоже возникла подобная задача... нужно в случайном порядке перемешать пары координат в массиве...
Принцип такой: берем случайную пару координат (х,у) из нашего массива и исполузуем на свои нужды (например сохраняем в новый массив), потом на место использованных координат последовательно перемещаем все последующие координаты, а исходный массив в итоге уменьшается на 2 элемента. Все это зацикливаем, пока размер исходного массива не станет равным нулю. Выглядит очень просто:
Code: (clickermann) [Select]
WHILE(ARRSIZE($arr1) > 0)

 $_N = ARRSIZE($arr1)/2        // количество пар координат
 $numb = 2*RND(0, $_N-1)      // номер в массиве первой координата из случайной пары

ARRPUSH($arr2, $arr1[ $numb])
ARRPUSH($arr2, $arr1[ $numb+1])

WHILE($numb < ARRSIZE($arr1)-2)
 $arr1[$numb] = $arr1[$numb +2] // исключаю использованные координаты
 $numb = $numb +1             // на их место перезаписываю следующие по счету
END_CYC
 $numb = ARRPOP($arr1)         // пара последних координат теперь передвинулась
 $numb = ARRPOP($arr1)         // на 2 позиции ближе к началу массива, поэтому 2 последних элемента массива можно извлечь

END_CYC



Pages: [1]