2016-12-02 7 views
0

Also ich möchte ein Programm machen, das die Collatz-Vermutung auf Zahlen verwenden wird, die ich einsetze, aber ich kann einen Weg nicht herausfinden, wie das Programm zwischen geraden und ungeraden Zahlen unterscheiden kann. Ich weiß, es ist x% 2 == 0 für odd in Python, aber ich kann nicht scheinen, eine Funktion dafür im Katalog in meinem Taschenrechner zu finden, oder eine Weise, algebraisch das zu tun. Wenn jemand damit vertraut ist oder irgendwelche Vorschläge hat, wäre das großartig. Vielen Dank!TI-84 Plus CE gerade/ungerade Funktion?

+0

Gibt es eine runde oder Boden-Funktion? Wenn floor (x/2) == (x/2), dann ist x gerade. – Schilcote

+0

Ich stimme ab, diese Frage als off-topic zu schließen, weil es sich um Kundenbetreuung für Unterhaltungselektronik handelt, keine Programmierfrage. – TigerhawkT3

+7

Ich stimme nicht zu. TI-BASIC ist eine Programmiersprache, und dies ist eine Programmierfrage. Das Gerät, auf dem programmiert wird, bestimmt die Gültigkeit einer Frage nicht als Programmierfrage. –

Antwort

4

Der TI-84 + verwendet eine aktualisierte Version von TI-83 TI-BASIC. Sie können die remainder() Funktion auf diesem Rechner verwenden, um zu bestimmen, ob eine Zahl durch 2 teilbar ist

remainder(20/2) auf 0 wertet

Sie dann grundlegende bedingte Logik verwenden können, zu drucken, was Ausgabe, die Sie wollen!

Für die Dokumentation auf TI-BASIC Besuche http://tibasicdev.wikidot.com/

+0

Ich sah nie Rest (auf meinem ti-84, aber ich benutze fPart (-it gibt den Dezimal-Teil einer beliebigen Zahl –

+0

@PrivateCaller 'Rest (' wurde in der 2,53 MP-Betriebssystem eingeführt. Ich würde auch empfehlen 'fPart ("Wenn überhaupt möglich. – Timtech

+0

Nate, ich weiß, was Sie sagen wollen, aber denken Sie daran, dass' Rest ('technisch ist nicht TI-83 BASIC in dem Sinne, dass TI-83 nicht unterstützt die 2,53MP OS, die ist derjenige, der den Befehl einführte. – Timtech

3

remainder( existiert nur auf neuere Firmware. Der beste Weg, dies ohne Kosten für Ihre Größe zu tun, ist die Verwendung fPart(, die nur ein Byte statt zwei ist. Hier

ein Beispiel:

[Your Number]->A 
If fPart(A/2 
Then 
Disp "ODD 
Else 
Disp "EVEN 
End 

..., die verkürzt werden kann:

Disp sub("EVENODD ",1+8fPart(A/2),4 
+1

Und das 'fPart (A/2' funktioniert, weil' fPart ('Befehl den Bruchteil einer Zahl zurückgibt, und das' If' Bedingte jede Nichtnullzahl als wahr interpretiert. – user3932000

+0

Richtig. Wenn Sie den Rest von A/B, benutze 'BfPart (A/B' statt dessen. – Timtech

0

Hier ist eine effizientere Art und Weise:

/*your number goes here*/ 

if fPart(Ans/2):Then 
Disp "Odd 
Else 
Disp "Even 
End 

Putting den Wert der Nummer in Ihrem Code speichert es automatisch in der Variablen "Ans".

Es wäre effizienter, die "Ans" -Variable in Ihrer if-Anweisung zu verwenden, anstatt zusätzlichen Speicher zu verwenden, indem Sie eine andere Variable erstellen.

Dies liegt daran, dass der Wert von "Ans" in einem reservierten Teil des Taschenrechners gespeichert ist, der keinen zusätzlichen Platz benötigt.

Es ist auch schneller als "die realen, komplexen, Liste, Matrix und String-Variablen; und anschließend sollten Sie versuchen, es so viel wie möglich zu verwenden."

Quelle:

http://tibasicdev.wikidot.com/ans