LINUX.ORG.RU

скрипт perl


0

0

У меня такой вопрос: как на perl, имея массив @F[0], в котором текстовые данные в элементах массива, создать другой массив, но в нем эти же данные содержались в произвольном порядке? Какая то random функция, Я новичок во всем этом.

anonymous

Re: скрипт perl

#!/usr/bin/perl -w

#В этой части заплняешь массив...

#Просто перебираем элементы случайно выбираем индекс для #переставляемых элементов а потом их меняем местами. #rand выдает значение от 0 до его параметра. # for($i=0;$i<=$#F;$i++){ $x=rand($#F); $temp=$F[$x]; $F[$x]=$f[$i]; $F[$i]=$temp; }

OxiD ★★★★ ()

Re: скрипт perl

#!/usr/bin/perl -w


#В этой части заплняешь массив...

#Просто перебираем элементы случайно выбираем индекс для
#элементов
#rand выдает значение от 0 до его параметра.
#
for($i=0;$i<=$#F;$i++){
$x=rand($#F);
$N[$x]=$F[$i];
}

OxiD ★★★★ ()

Re: скрипт perl

спасибо!

anonymous ()

Re: скрипт perl

Что-то не получается, возможно оттого, что данные в массиве не числовые.
Не сочтите за наглость, можете срипт написать полностью?
данные -- из файла ./mapcycle (в нем список названий карт для
counter-strike), типа
-----------
de_dust
de_scud
de_aldi
cs_italy
cs_iraq
-----------
и т.д. 120 названий, а нужно, чтобы вновь созданный mapcycle.txt
содержал те же карты, но уже в другом порядке. Может и не random
здесь нужен?
Спасибо!

anonymous ()

А не проще ли сам сервер попросить рэндомно менять карты ?? Чем троеточием заниматься ?? :-))))

LamerOk ★★★★★ ()

Re: скрипт perl

а нахрена вообще перл? я делал подобное "на скорую руку" так:

берем этот файл, добавляем в него второй столбик случайных чисел, можно гавком их получать можно просто из /dev/urandom читать :)

далее сортируем стандартной утилитой sort по второму столбцу

далее выкусываем второй столбец cut'ом или гавком и кладем результат в файл.

итого одна строчка на шеле, если не сообразишь как написать скажи --- напишем вместе :)

anonymous ()

Re: скрипт perl

Ха, кабы сообразил, не стал бы на форум обращаться!
Последний вариант мне нравится, попробую.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.