2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3
 
 Re: Алгебраическое представление последовательности по значениям
Сообщение07.06.2018, 16:21 


05/09/16
6018
realeugene
Упаковать-то наверное можно. А вот распаковать потом...

 Профиль  
                  
 
 Re: Алгебраическое представление последовательности по значениям
Сообщение07.06.2018, 16:43 


27/08/16
5227
wrest,
у МК-61 есть команды выделения целой и дробной части числа.
На МК-54, например, чтобы выделить целую часть числа нужно вычесть 0.45 (такое у него странное округление), потом прибавить и вычесть 1e7.

 Профиль  
                  
 
 Re: Алгебраическое представление последовательности по значениям
Сообщение07.06.2018, 16:56 


05/09/16
6018
realeugene в сообщении #1317921 писал(а):
у МК-61 есть команды выделения целой и дробной части числа.

И это прекрасно. Вопрос в том, что длиннее: таблица в памяти программ и программа отделения старшего разряда (как сделано у ТС) или программа распаковки нужного разряда из упакованной в регистр таблицы. У вас есть ответ?

 Профиль  
                  
 
 Re: Алгебраическое представление последовательности по значениям
Сообщение07.06.2018, 17:04 


27/08/16
5227
wrest
нужно экспериментировать. Но вообще-то у этих калькуляторов мантисса состоит из 8 десятичных разрядов, а не из 10, как предлагаете вы.

 Профиль  
                  
 
 Re: Алгебраическое представление последовательности по значениям
Сообщение07.06.2018, 17:23 


05/09/16
6018
realeugene в сообщении #1317933 писал(а):
Но вообще-то у этих калькуляторов мантисса состоит из 8 десятичных разрядов,

Ну да, из 8-ми. А где я писал про 10?
А... вот тут:
wrest в сообщении #1317593 писал(а):
Каждый регистр может хранить 8 десятичных разрядов (как минимум), это 4 раза по 2 разряда, то есть в одном регистре можно хранить минимум 4 числа каждое от 0 до 99. Вам, наверное надо хранить не 4 а 5 чисел в каждом регистре. Ну что ж, есть еще три знака мантиссы, итого 8+3=11 знаков, а на пять чисел надо 10 знаков. Можно уместить!

Ну это я мантиссу с порядком перепутал. Читать так: "Ну что ж, еще есть три знака порядка, итого 8+3=11 знаков, а на 5 чисел нужно 10 знаков. Можно уместить!" Кроме того, вероятно я не прав насчет трех разрядов в порядке, третий там кажись неполноценный.

Сейчас более подробный анализ показывает, что таблица содержит числа от -1 до 7, но аномалий (-1) всего две: это "сорок" вместо "четыредесять" и "сто" вместо "одинсот", остальные числа в пределах от 3 до 7, вычитаем 3 и получаем от 0 до 4, а $[log_5(10^8-1)]=11$, то есть 10 чисел влезает в 8-разрядный регистр и без привлечения порядка, но с аномалиями.
Причем три столбца из пяти -- "однобитные" по сути, паковать их я думаю не надо, а надо вычислять по формулами как я писал там выше -- через взятие целой части.

 Профиль  
                  
 
 Re: Алгебраическое представление последовательности по значениям
Сообщение08.06.2018, 04:04 


04/06/18
15
Согласен с wrest вариант с формулами и отделением целой части, выглядит перспективным. Для десятков можно попробовать сформулировать формулу для "стандартных" чисел, а 40 и 90 потом откорректировать проверками. Вопрос хватит на все шагов программы.

 Профиль  
                  
 
 Re: Алгебраическое представление последовательности по значениям
Сообщение08.06.2018, 09:59 


05/09/16
6018
UMV в сообщении #1318126 писал(а):
Для десятков можно попробовать сформулировать формулу для "стандартных" чисел,

Для стандартных она простая: количество букв в единицах плюс 5 ("дцать" и "десят" - по пять букв).

 Профиль  
                  
 
 Re: Алгебраическое представление последовательности по значениям
Сообщение17.06.2018, 03:04 


04/06/18
15
Программа для 1-9999
00.4 01.П1 02.ИП0 03.П4 04.ИП4 05.1 06.0 07./ 08.В|; 09.К{x} 10.1 11.0 12.* 13.<-> 14.K[x] 15.П4 16.<-> 17.Fx<>0 18.35 19.4 20.+ 21.П5 22.КИП5 23.ИП1 24.2 25.* 26.F10x 27./ 28.K{x} 29.2 30.F10x 31.* 32.K[x] 33.ПП 34.84 35.FL1 36.04 37.ИП0 38.2 39.F10x 40./ 41.K{x} 42.1 43.0 44.* 45.K[x] 46.1 47.- 48.Fx=0 4 49.68 50.ИП0 51.1 52.0 53./ 54.K{x} 55.1 56.0 57.* 58.K[x] 59.Fx<>0 60.68 61.4 62.- 63.Fx<0 64.68 65.1 66.ПП 67.84 68.ИП0 69.ИП3 70./ 71.K{x} 72.Fx=0 73.78 74.ИП2 75.1 76.+ 77.П2 78.Сх 79.П3 80.FL0 81.00 82.ИП2 83.С/П 84.ИП3 85.+ 86.П3 87.В/О
Перед использованием заносим в регистры числа и нажимаем В/О С/П
П0=9999
П2=0
П3=0
П6=4060310
П7=3080609
П8=3080609
П9=6050912
Пa=4090709
Пb=5100810
Пc=4090709
Пd=6110911
Пe=6090911

Шаги 00-18 Поочередно выделяем цифры из разрядов исходного числа, 19-34 по цифре разряда определяем регистр в котором запаковано значение соответствующее цифре разряда, а по счетчику цикла регистр 1 выделяем двузначное значение из регистров П6-Пe соответствует разряду единиц, десятков, сотен, тысяч. Шаги 35-36 цикл для разложения исходного числа на 4 разряда. Шаги 37-67 еще раз из исходного числа выделяем разряды единиц и десятков, и сравнением учитываем одиннадцать, двенадцать и т.д. Шаги 68-83 Проверка делимости числа увеличение счетчика , организация глобального цикла, вывод результата. Шаги 84-87 Подпрограмма счетчик числа букв в текущей цифре.

На "андроид" эмуляторе в ускоренном режиме программа считала где-то 18 часов результат 402. На оригинальном МК-61 программа считала бы 370 часов.

Спасибо wrest использовал вашу идею с 9 регистрами, хотя изначально скептически к ней отнесся.

 Профиль  
                  
 
 Re: Алгебраическое представление последовательности по значениям
Сообщение18.06.2018, 10:51 


05/09/16
6018
UMV
То есть программа для 1-9999 получилась даже короче чем для 1-999 :D

P.S. У меня есть этот калькулятор, и он даже работает. И "Технику - молодежи" тогда я выписывал. Но, конечно, сейчас уже забыл, что там и как :mrgreen: Калькулятор был хорош тем, что вокруг никто не понимал что такое обратная польская запись, и после нескольких "дай калькулятор" (это были времена когда калькулятор был не у каждого), и немедленного вопроса "а где тут кнопка равно", одноклассники во-первых переставали его просить, а во-вторых я прослыл очень умным. Но впоследствии все-таки более удобным оказался МК-71, который я долгое время считал вообще идеальным калькулятором: легкий, компактный и вечный (независимый от батареек).
Рад, что остались люди, которые не забыли про "семейство Б3-34" и в частности МК-64.

 Профиль  
                  
 
 Re: Алгебраическое представление последовательности по значениям
Сообщение22.06.2018, 15:50 


04/06/18
15
Да совершенно верно - причем 1-9999 универсальная и решит 1-999 если в регистр П0 занести 999 и вообще в ней любое число от 1 до 9999 можно проверить.
По поводу программируемых калькуляторов - хорошее подспорье математикам и изучающим математику, но в настоящий момент проще (дешевле) "андроид" эмулятор (разных моделей) поставить на телефон и использовать и это правильное решение. А вообще мой мк-61 прошел со мной 10-11 класс, институт и никогда не подводил и сейчас работает без проблем!!!

-- 22.06.2018, 16:57 --

Но..., у меня есть и HP-35S - на нем веду всю бухгалтерию моей конторы.

 Профиль  
                  
 
 Re: Алгебраическое представление последовательности по значениям
Сообщение22.06.2018, 16:54 


27/08/16
5227
UMV в сообщении #1321805 писал(а):
Но..., у меня есть и HP-35S - на нем веду всю бухгалтерию моей конторы.
Вам удалось избежать FoxPro? :mrgreen:

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 41 ]  На страницу Пред.  1, 2, 3

Модераторы: Toucan, maxal, PAV, Karan, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group