Octave while / for утверждение - что не так в коде? - PullRequest
0 голосов
/ 30 апреля 2011

Это мой октавный код

    for K= 1:10
    while ( p < 1 )
        ceil(log2(K))  +  1/(1-(1-p)^K) %function
        p = p + sens;
        K
    endwhile;
 endfor

 K

и вот вывод:

ans =  10.000
K =  1
ans =  5.0000
K =  1
ans =  3.3333
K =  1
ans =  2.5000
K =  1
ans =  2
K =  1
ans =  1.6667
K =  1
ans =  1.4286
K =  1
ans =  1.2500
K =  1
ans =  1.1111
K =  1
ans =  1
K =  1
K =  10

Итак, как видите, во внутреннем while значение оператора K установлено на 1. Что я должен делать, чтобы варьировать это значение от 1 до 10. Почему оно не работает? Я понятия не имею, почему это внутреннее утверждение while выполняется только один раз.

ОТВЕТ: должно быть p = initial_value после for K= ...

1 Ответ

2 голосов
/ 01 июня 2011

Там должно быть p= initial_value после for K=... То есть так:

for K = 1:10
    p = somevalue;
    while ( p < 1 )
    ...
...