Случайная строка.

Форум пользователей пакета Maple

Модератор: Admin

Lesha
Сообщения: 195
Зарегистрирован: Пт май 02, 2003 9:04 pm

Случайная строка.

Сообщение Lesha » Сб янв 24, 2009 3:47 am

Как сгенерировать случайную строку T, чтобы каждый её элемент принимал, с равной
вероятностью, одно из значений, лежащих в интервале целых значений от n1 до n2?
(Нужно для бутстрепт метода).
Попробовал «напрямую» воспользоваться генератор случайных чисел rand:
T:=[rand(n1..n2) $i=n1..n2];
Но выдается ошибка «Error, wrong number (or type) of parameters in
function $». Почему-то не хочет использовать процедуру rand(n1..n2) в
«теле» определения строки.

Попробовал сгенерировать случайные числа вне «тела» определения строки, а потом создать из
них строку:
for i from n1 to n2 do
r[i] := rand(n1..n2):
end do:
T:=[r[i]() $i=n1..n2];
Но все равно выдается та же ошибка.
Как можно решить задачу?

Заранее спасибо, Алексей.

aar
Сообщения: 100
Зарегистрирован: Чт авг 10, 2006 11:27 am

Сообщение aar » Сб янв 24, 2009 10:01 am

Не знаю, почему у Вас такая ошибка. Варианты -- не заданы значения n1, n2 или i было раньше что-то присвоено. Чтобы получить список случайных чисел, нужно использовать не $, а seq:

Код: Выделить всё

> n1 := 10:
> n2 := 30:
> r := rand(n1 .. n2):
> [seq(r(), i = n1 .. n2)];
  [18, 22, 25, 10, 15, 22, 23, 16, 16, 12, 23, 24, 24, 28, 30, 21, 28, 17, 12, 26, 26]
>
> [r() $ (i = n1 .. n2)];
  [12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12]
>

CALGARI
Сообщения: 14
Зарегистрирован: Ср ноя 12, 2008 9:06 pm

Сообщение CALGARI » Ср апр 08, 2009 1:32 pm

я тоже голову ломал,а решение было так близко.спасибо.
____________
недвижимость франции