Рубрики
Без рубрики

Задача заполнения кувшина на калькуляторе графики Ti-84 CE

Исследуйте проблему наполнения кувшин, чтобы получить начало головы на евклидовом алгоритме на калькуляторе графики Ti-84

Автор оригинала: Robin Andrews.

Проблема заполнения кувшина Это очень интересная проблема, которая может быстро взять вас в довольно глубокую территорию в перекрытии между математикой и информатикой. Это тесно связано с Евклидонский алгоритм , который является методом нахождения наибольшего общего делителя двух чисел. (В Великобритании вы можете быть более знакомы с термином «высочайший общий фактор»). Древние греки делали некоторые удивительные вещи с алгоритмами в свое время, и я иногда задаюсь вопросом, что они сделали из некоторых современных инноваций, которые мы принимаем как должное. Например, что, если калькулятор графики Ti-84 сделал свой путь назад во времени в руки Евклида – он, вероятно, подумает, что Афина Аполлона даровала на него волшебный подарок.

Используя Ti-84, мы можем исследовать проблему наполнения кувшин с помощью небольшого программирования Ti-Basic.

Вы можете загрузить файл 8xP (Ti-Basic) для этой программы здесь.

Цель состоит в том, чтобы использовать параметры для завершения значения 1 в одном из кувшин. Есть несколько решений.

После того, как вы освоили идею, вы можете попробовать модифицировать код, чтобы иметь разные размеры кувшин. Если вы любите кодирование в Ti-Basic (который может быть немного расстраивающим по сравнению с другими языками), вы можете заменить размеры кувшины с жестким кодировкой более легко модифицированными константами.

Дайте мне знать, что вы думаете в комментариях. Если вы хотите, чтобы какая-то часть Кода объяснила, что попробую тоже помогу.

Наслаждаться!

0->X
0->Y
Lbl ST
ClrHome
Disp ""
Disp ""
Disp ""
Disp "1: FILL SMALL"
Disp "2: FILL BIG"
Disp "3: POUR SMALL TO BIG"
Disp "4: POUR BIG TO SMALL"
Disp "5: EMPTY SMALL"
Disp "6: EMPTY BIG"
Output(1,1,"SMALL: "
Output(1,8,X
Output(2,1,"BIG: "
Output(2,8,Y
Repeat max(Ans={92,93,94,82,83,84
    getKey
End
If Ans=92
3->X
If Ans=93
5->Y
If Ans=83
0->X
If Ans=84
0->Y
If Ans=94
Then
    min(X,5-Y)->C
    Y+C->Y
    X-C->X
End
If Ans=82
Then
    min(Y,3-X)->C
    X+C->X
    Y-C->Y
End
Goto ST