Mathematica, увеличивается на 2n + 1, а не, скажем, на 3 - PullRequest
0 голосов
/ 02 апреля 2011

Вот что у меня есть.

RandomChoice[{.5, .5} -> {Heads, Tails}, 3]

тогда я пишу

RandomChoice[{.5, .5} -> {Heads, Tails}, 5]

Как мне увеличить эту функцию с шагом 2n + 1?

Ответы [ 2 ]

2 голосов
/ 02 апреля 2011

Я интерпретировал ваш запрос как указание на то, что вам нужна функция 2n + 1 с шагом 2. Таким образом, значения будут: 3, 5, 7, 9, 11 ... Если это правильная интерпретация, то следующее должно работать:

Table[RandomChoice[{heads, tails}, 2 n + 1], {n, 1, 10}]

Итак, f (n) = 2 n + 1 для домена {1,2,3,4,5,6,7,8,9,10}

Вы можете достичь того же результата с:

Table[RandomChoice[{heads, tails}, n], {n, 3, 21, 2}]

Это делает еще более ясным, что приращение равно 2. Однако это не та же функция. Цель та же, что и раньше, но домен теперь совпадает с целевым набором: {3, 5, 7 ... 21}

1 голос
/ 02 апреля 2011

Это то, что вы ищете?

For[i = 1, i < 5, i++, Print[RandomChoice[{.5, .5} -> {Heads, Tails}, 2i+1]]]

Что даст примерный результат:

{Heads, Tails, Tails}
{Tails, Tails, Heads, Heads, Tails}
{Tails, Tails, Heads, Tails, Heads, Heads, Tails}
{Heads, Heads, Tails, Tails, Heads, Tails, Heads, Tails, Tails}

Это также делает то же самое:

Do[Print[RandomChoice[{.5, .5} -> {Heads, Tails}, 2i+1]], {i, 4}]

Я не знаю, есть ли более элегантный / эффективный способ сделать это, так как я новичок в Mathematica - но я уверен, что кто-то прокомментирует, если есть.

...