2016-06-18 4 views
2

Я хочу использовать пакет статистики, который позволяет выполнять символические вычисления со случайными переменными для определения последовательности случайных величин.Определить последовательность случайных переменных в клене?

Этот код не работает:

restart; 
with(Statistics): 
X:=RandomVariable(DiscreteUniform(1,26)); 
seq(X(i),i=0..1000); 

, поскольку он отображает:

> Mean(X(5)); 
> 
                 _R(5) 

Вместо того, 27/2. Кто-нибудь знает, как это исправить?

ответ

2

Сделать X вектор, как это:

X:= Vector(1000,()-> Statistics:-RandomVariable(DiscreteUniform(1,26))): 

Затем вы можете давать команды, как

Statistics:-Mean(X(5)); 

, и вы получите ваш ожидаемый результат.

Если вы настаиваете на индексировании начиная с 0, это немного сложнее. Измените определяющую команду

X:= Array(0..1000,()-> Statistics:-RandomVariable(DiscreteUniform(1,26))): 

И вам нужно сделать индексацию с помощью квадратных скобок: X [0], X [5] и т.д.,

+0

Спасибо много. :) Почему мой подход не прошел? –

+0

Вы определили ** X ** как единую случайную переменную. Таким образом, он не может быть проиндексирован. Я сделал ** X ** контейнерным объектом, который содержит 1000 случайных величин. –