Wolfram Loop работает только один раз
Привет я пробую мягкую версию аналого-цифрового преобразователя (АЦП) на Wolfram Cloud. Код приведен ниже.
min =0.0;
max =15.0;
val=5.0;
avg =0.0;
ans= ConstantArray[0.0,8];
i=0;
while[i<8,i=i+1;
avg = (max+min)/2;
min = If[avg<val , min , avg];
max = If[avg<val, avg, max];
Insert[ans, If[val<avg,0,1], i];
Print[avg]
];
Print[ans];
Проблема, с которой я сталкиваюсь, заключается в том, что цикл while работает только один раз, а результат показан ниже. Я также пробовал цикл For, но результаты те же.
7.5`
{0.`,0.`,0.`,0.`,0.`,0.`,0.`,0.`}
Есть идеи, что происходит?
1 ответ
Решение
Используйте заглавную букву 'w' для While
,
While[i < 8, i = i + 1;
avg = (max + min)/2;
min = If[avg < val, min, avg];
max = If[avg < val, avg, max];
Insert[ans, If[val < avg, 0, 1], i];
Print[avg]]