Jump to content

УБАСИК

УБАСИК
Оригинальный автор(ы) Юджи Кида
Первоначальный выпуск до 2005 года
Операционная система ДОС , Microsoft Windows
Тип БАЗОВЫЙ
Лицензия Бесплатное ПО / общественное достояние (без исходного кода )

UBASIC — это бесплатный ( общественное программное обеспечение без исходного кода ) интерпретатор BASIC, написанный Юджи Кидой из Университета Риккё в Японии и специализирующийся на математических вычислениях.

UBASIC — это готовый к использованию язык, который не требует настройки другого расширенного языка, что является распространенной проблемой для многозначных математических языков. Он работает в DOS или в окне DOS под оболочкой DOS , Microsoft Windows и т. д. Он специализируется на теории чисел , тестировании на простоту , факторинге и больших целых числах (до 2600 цифр). Будучи реализацией BASIC, можно легко читать программы без необходимости тщательного изучения, поскольку BASIC — это язык, структура и синтаксис которого близки к обычной алгебре. В файлах справки есть статьи и уроки для начинающих.

UBASIC имеет встроенный онлайн-редактор с несколькими средствами отладки. Он может отображать перекрестные ссылки на вызывающие строки, строки, содержащие переменную, и списки переменных/массивов. Он может перенумеровывать строки, изменять имена переменных и добавлять дополнительные программы. Он может отслеживать отдельные шаги и время с точностью до миллисекунд, чтобы помочь определить самый быстрый способ выполнения часто повторяющихся разделов. Он может переопределить функциональные клавиши, чтобы обеспечить простоту использования одной клавиши или предотвратить случайное использование стандартной функции, когда это не следует. Он может работать с DOS или выполнять команду DOS. Он может преобразовывать однобайтовый набор символов в двухбайтовый набор символов, но для того, чтобы это можно было эффективно использовать, главному компьютеру, вероятно, потребуется соответствующая операционная система . Документы можно добавлять или изменять в UBHELP.HLP.

Тестирование примитивности с помощью APRT-CLE (до 884 цифр) (лучше всего проводить его под UBASIC версии 8.8F или новее): 500 цифр занимают 5 часов на PP-200, 150 цифр занимают около 16 минут на 486- 100, около 2¼ минут на K6@233; 250 цифр занимает около 13½ минут на K6@233. Современные машины могут работать в 10 раз быстрее. APRT-CLE часто является предпочтительным алгоритмом для проверки простоты целых чисел в пределах его диапазона.

Факторинг с помощью таких программ, как ECMX, выполняется довольно быстро. Он может довольно легко найти факторы с количеством цифр ниже 20, с числом цифр около 20 несколько сложнее, а с числом цифр выше 20 с меньшими шансами на успех. Он нашел 30-значный коэффициент. (Нахождение факторов с помощью метода эллиптических кривых всегда рискованно для более крупных факторов. Чем больше кривых тестируется, тем больше шансов на успех, но необходимое количество (в среднем иногда может повезти или не повезти) быстро увеличивается с увеличением размер факторов. Всегда лучше использовать самую быструю доступную машину. ECMX использует принятые стандарты для определения пределов того, когда следует прекратить работу с одной кривой и переключиться на другую. Он имеет предварительное тестирование простоты, поиск малых факторов и степеней.

Интерпретация позволяет модифицировать программы, а затем перезапускать их (с помощью GOTO) в середине прогона, даже многодневного, без потери накопленных данных. Остановка не рекомендуется, если программа где-то безопасно не сохранила данные или если пользователи забыли написать какой-либо способ сохранения данных при выходе (возможно, они не ожидали его найти и пытались это доказать). Когда вы делаете что-либо, что может привести к потере ценных данных, или если вам нужно какое-то время сделать что-то еще, вы можете ЗАМОРОЗИТЬ текущую программу в файл, а затем ПЛАВИТЬ ее (при условии, что нижняя конфигурация памяти остается той же).

В UBASIC есть номера строк. Он не использует отступы для управления структурой. Он имеет подпрограммы и пользовательские функции с передаваемыми параметрами и локальными переменными. Параметры можно передавать по значению или по имени. Пользовательские функции и подпрограммы могут передаваться в качестве параметров. У него ограниченное количество этикеток. Он имеет различные варианты условных функций. Пользователи могут делать отступы столько, сколько необходимо, или вообще не делать их вообще, а также могут иметь столько структуры, сколько хотят, или спагетти-кода . Ошибочно считать UBASIC «несовременным» (как может прийти к выводу читатель статей, в которых отступы путаются со структурой и не поддерживаются номера строк). Наличие номеров строк позволяет легко перейти к промежуточной точке программы, что иногда позволяет избежать дублирования строк.

UBASIC версии 8 имеет высокоточную действительную и комплексную арифметику (до 2600 цифр) предыдущих версий и добавляет точную рациональную арифметику и арифметику полиномов с одной переменной с комплексными, рациональными коэффициентами или коэффициентами по модулю p, а также обработку строк и ограниченные возможности обработки списков. In также имеет контекстно-зависимую онлайн-документацию (для получения информации прочтите UBHELP.DOC). При этом используется файл ASCII, который можно распечатать как бумажный документ.

По состоянию на 2005 год в файле справки было много ошибок. Десятилетний проект по переписыванию/исправлению был почти готов к публикации, вероятно, к концу лета 2005 года. Новый файл справки имеет новое расширение «.hlp» и, в конечном итоге, имя пакета u3d748f*. Список обновлений доступен, но о многих изменениях не сообщается.

Версия 8.8 имеет точность, отличную от версии 8.74.

Есть еще некоторые команды, для которых нет документации:

 SCHOOL
 KEYSCAN
 MODMUL(

В версии 8.8C появилась новая команда (POLYCONV), которая преобразует полиномы между модулем = 0 и модулем = простое число. Спецификаций форматирования нет.

ВНИМАНИЕ: Никогда не проверяйте ничего из этого, когда что-то важное работает (или может быть) запущено или приостановлено где-то еще, поскольку можно ожидать зависаний, особенно для KEYSCAN. См.: ЗАМОРОЗИТЬ, СВЕРНУТЬ, РАСПЛАВИТЬ. (для аналогичного предупреждения)

UBASIC имеет несколько типов массивов, логические операторы, битовые операторы, четыре стандартных структуры цикла и комбинированные операторы. Он может вызывать подпрограммы машинного языка для увеличения скорости (ECMX делает это), но вы должны знать язык ассемблера, чтобы хотя бы понимать инструкции - просто уметь писать TSR в DEBUG недостаточно.

  • Строковые значения можно вычислить, если они представляют собой математическую формулу.
  • Строки обычно могут выполняться, если они представляют собой команду UBASIC.
  • Переменные, содержащие строки, обычно могут быть заменены строками.
  • Строки могут быть расположены в алфавитном порядке с использованием MIN или MAX.

UBASIC можно использовать для обработки практически любого типа данных. Например: файлы .WAV. Он может обрабатывать текстовые файлы для преобразования табуляции в пробелы или пробелов в табуляции. Некоторые программы не могут создавать вкладки, а некоторые фактически захлебываются ими.

Типы переменных включают в себя:

  1. целое число
  2. рациональный
  3. настоящий
  4. комплексное число
  5. нить
  6. пакет (смешанный из любых типов, включая другие пакеты)
  7. полиномиальный
  8. mod полином (целые коэффициенты по модулю простого числа)

Поиск в Интернете в начале 2005 года выявил версии 8.74(32), 8.74(16), 8.71(4000(16)), 9.0ZE, 9.0ZC, 9.0E, 8.8F(32), 8.8F(16), 8.8F( С), 8.7Е(32), 8.7Е(16), 8.30(32), 8.30(16), 7.25(32), 7.25(16), 8.8А(32), 8,8А(16), 8.8А (С), 8,8С(32), 8,8С(16), 8,8С(С), 8,8Е(32), 8,8Е(16), 8,8Е(С) . 12 версий из 52 известных номеров. Многие из них не идентифицированы напрямую. (Знаки (16) и (32) относятся к числу битов в механизме умножения. (4000) относятся к специальным версиям, которые могут содержать более 4000 цифр (некоторым пользователям может понадобиться один из них, например, для генерации первого числа). 792 числа Бернулли для удвоения индекса 1584: последняя версия может получить только 540/1080). (C) предназначен для машин CGA. Версии, выделенные курсивом, не рекомендуются.)

Большинству пользователей понадобится всего 8,8F.

Если вы уже используете версию позже 8.74 и особенно если вы используете версию позже 8.7E, вам настоятельно рекомендуется переключиться на последнюю версию (8.8F). Некоторые программы (например, Fancy Display), написанные для 8.74, могут не работать в 8.8F без существенной переписывания. Последние версии не удаляют возврат каретки/перевод строки из файлов ASCII, а такие программы, как UBH (даже та, что в 8.8F), нуждаются в добавлении строк для их удаления. Любая программа, написанная для одной версии, не должна использоваться в другой версии без проверки.

Некоторые программы, такие как NFS, будут работать только на экспериментальной версии 9.**.

Версия ppmpx36e мультиполиномиального квадратичного сита требует 8.8F и Windows.

Некоторые версии UBASIC поставлялись с дефектным файлом UBCONST7.DAT. Вам следует сравнить свой с тем, который указан в 8.8F. Если он не идентичен, вам следует переключиться.

UBASIC доступен для

  1. IBM-PC/AT и совместимые устройства
  2. НЭК ПК-9801
  3. НЭК ПК-H98
  4. Fujitsu FM-R
  5. Тошиба J-3100
  6. ТОПОР
  7. DOS/V

Чтобы получить последнюю версию UBASIC, см. разделы внешних ссылок. Многие интернет-страницы по математике имеют соответствующие языки/пакеты на своих сайтах.

Пример программы

[ редактировать ]

Ниже приведена короткая простая программа для функции подсчета разделов. Хотя в ней не так много сложных структур, это настоящая программа, придуманная не для этой статьи. На современном быстром Athlon он должен вычислить количество разделов от p(0) до p(1000) примерно за ½ секунды. Сравните это с более чем полувеком в первый раз. Чтобы сохранить результат в файл, раскомментируйте строку 40 (удалите начальный апостроф).

 10   CONSOLE:CONSOLE 1,24,0:LOCATE 1,0
 20   PRINT CHR(2);"N","P(N)","PARTITION COUNT"
 30   WORD -19:POINT -8:H%=11:'FOR N UP TO ~1200
 40   'PRINT=PRINT+"PARTN5.TXT":'output redirect
 50   N=0:'INPUT N
 60   CLR TIME
 70   Mu=PI(SQRT(24*N-1)/6)
 80   CLR S
 90   FOR K=1 TO H%
100    '110 to 160 is selberg formula
110    CLR C
120    FOR L=0 TO 2*K-1
130      IF ((3*L^2+L)\2)@K=(-N)@K
140       :C+=(-1)^L*COS(PI((6*L+1)/(6*K)))
150    NEXT
160    'to get A(K,N), multiply C by SQRT(K/3)
170    U=EXP(Mu/K)
180    R=(Mu+K)/U:'Rademacher's convergence term
190    S+=((Mu-K)*U+R)*C
200   NEXT
210   S=ROUND(ABS(S*2/(MU*(24*N-1))))
220   PRINT CUTSPC(STR(N));
230   LOCATE 38-ALEN(S):PRINT S
240   IF N<1000:INC N:GOTO 70
250   Tt=TIME1000:PRINT=PRINT:PRINT Tt/1000
260   '~1.7% faster if N,K,L changed to N%,K%,L%

Точность

[ редактировать ]

При работе с непрерывными дробями количество членов ограничено доступной точностью и размером каждого члена. Приблизительная формула представляет собой точность до 2 цифр десятичной дроби для каждого (член, умноженный на десятичный логарифм термина). Единственный способ безопасно выполнить такую ​​работу — выполнить ее дважды параллельно, при этом начальный ввод должен быть подмешан в последних нескольких цифрах (минимум 1 слово). Затем, когда два расчета не дают одинаковых членов, остановитесь на предыдущем члене.

UBASIC может вычислить статистическую сумму выше p(1330521). (В версиях 8.74 до p(1361911) и 4000-значных версиях должно быть намного больше.)

Поглаживания рук

[ редактировать ]

См. также

[ редактировать ]
Примечания

Основные характеристики заключаются в следующем:

  • Ближние простые числа, A(n)B, AB(n) и UBASIC; Колдуэлл, Крис К.; Журнал развлекательной математики, Vol. 22(2) 101-109, 1990 г.
  • UBASIC: общедоступный BASIC по математике; Нойманн, Уолтер Д.; Уведомления Американского математического общества, май/июнь 1989 г., том 36, номер 5, стр. 557-559
  • Обновление UBASIC; Нойманн, Уолтер Д.; Уведомления Американского математического общества, март 1991 г., том 38, номер 3, стр. 196-197
  • 2 и 3 несколько устарели, и г-н Нойманн говорит «общественное достояние», вместо того чтобы говорить «бесплатное ПО» (без исходного кода).
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 16b81ee983688d9bb2a2c8b56e7135c7__1707130020
URL1:https://arc.ask3.ru/arc/aa/16/c7/16b81ee983688d9bb2a2c8b56e7135c7.html
Заголовок, (Title) документа по адресу, URL1:
UBASIC - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)