Почему не работает поиск маршрутов с полиномиальными целыми числами?

Итак, я хочу, чтобы это нашло мне корни многочлена. Однако каждый раз, когда я запускаю его, он никогда не дает мне никаких корней, даже если я использую очевидный, например, 2x-2. Почему это не сработает?

Input "Degree?",θ
Disp "Left to right"
Disp "coefficients"
1→V
For(Z,0,θ)
Input A
Q→R
P→Q
O→P
N→O
M→N
L→M
K→L
J→K
I→J
H→I
G→H
F→G
E→F
D→E
C→D
B→C
A→B
If V=1
Then
A→S
V=0
End
End

For(T,–A,A)
For(U,–W,W)
If T≠0
U/T→X

RX+Q→Y
YX+P→Z
ZX+O→Y
YX+N→Z
ZX+M→Y
YX+L→Z
ZX+K→Y
YX+J→Z
ZX+I→Y
YX+H→Z
ZX+G→Y
YX+F→Z
ZX+E→Y
YX+D→Z
ZX+C→Y
YX+B→Z


If Z=0
Then
Disp X
End
End
End



prgmRESET

RESET просто сбрасывает значения переменных. Что с этим не так?


person Miles Kim    schedule 03.11.2014    source источник


Ответы (3)


Запрос: Я совершенно не знаю, над какой операцией вы работаете, не могли бы вы указать, что

Наблюдение: вы используете много переменных, которым не присвоено какое-либо значение или которые изначально не были очищены. Я вижу, что вы пытаетесь создать «поток» переменных для работы, но если вы сделаете это без очищая переменные раньше времени, вы создаете проблемы в своих более поздних вычислениях.

Рекомендации по кодированию:

  • Вы указываете V = 0, что ничего не делает в этом контексте, вместо того, чтобы присваивать ему значение
  • Вы можете изменить «Если T ≠ 0» на просто «Если T»
  • В вашем третьем выражении «For()» «W» не определено в коде.
  • Вы можете изменить «If Z = 0: Then: Disp X: End», ближе к концу вашего кода, на просто «If not (Z: Disp X»
  • Переместите prgmRESET в начало вашей программы.
person Zenohm    schedule 17.11.2014

Честно говоря, я не совсем уверен, как ваш код должен находить маршруты полинома. Ваша ошибка, скорее всего, происходит где-то в вашем беспорядке назначения/переназначения/замены переменных. Я бы переделал ваш код, используя списки вместо базовых переменных.


Если все, что вы хотите сделать, это найти пути полинома, я могу дать вам программу для этого.

:Prompt L1,X
:Repeat 1=dim(L1
    :dim(L1->dim(L3 
    :seq(L1(A)(Ans-A),A,1,Ans-1->L2
    :Repeat abs(Ans)<10^(-7
        :L1(1->L3(1
        :For(A,2,dim(L1
            :XL3(A-1)+L1(A->L3(A
        :End
        :Ans->B
        :L2(1->L3(1
        :For(A,2,dim(L2
            :XL3(A-1)+L2(A->L3(A
        :End

        :Ans^-1(AnsX-B->X
        :B
    :End
    :Disp X
    :L1(1->L2(1
    :For(A,2,dim(L1)-1
        :XL2(A-1)+L1(A->L2(A
    :End
    :L2->L1
:End
person ankh-morpork    schedule 19.01.2015

Я не совсем уверен, что вы пытаетесь сделать здесь. Вы используете множество переменных, никогда не очищая и не определяя их, что, вероятно, означает, что все ваши значения будут равны 0.

Также рекомендация для будущих вопросов TI-BASIC:

ПОЖАЛУЙСТА, объясните свои переменные. Нет ничего хуже, чем иметь кучу переменных и ожидать, что читатель проведет детективную работу, чтобы выяснить, что они должны делать. Кроме того, это также полезно для вас, когда вы решите вернуться к нему для устранения неполадок.

person user3932000    schedule 27.01.2015