5

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

  • В настоящее время я открываю Firefox и нажимаю Ctrl+K, введите в поле поиска, и это обычно дает мне результат в раскрывающемся списке из Google Calculator. Однако это не всегда так, поэтому я нажимаю «=» в конце, ожидаю результата, удаляю равные, жду результата, понимаю, что он не понимает, как я набрал единицу, открываю результат в новая вкладка и т.д. это отстой.
  • Wolfram Alpha умнее, но намного медленнее, и выводятся все изображения, а не текст, и у меня нет быстрого виджета для этого, если такая вещь вообще может существовать.
  • У единиц GNU есть тонна единиц, и это здорово, и я могу определить свои собственные единицы, что замечательно, но они должны быть написаны особым, не интуитивно понятным способом, это не обрабатывает много продвинутой математики, и мне нужно открыть терминал, запустить юниты и т. д. Я ненавижу командную строку.
  • Я потратил много времени, пытаясь создать фронтенды для units в Deskbar и Launchy, но я не настоящий кодер и больше не использую ни один из них.

Любые другие решения или улучшения этих?

(Кроссплатформенность лучше)

Идеальный калькулятор с поддержкой юнитов сможет справиться со всеми этими вопросами:

  • 7 nV/sqrt(Hz) ⋅ sqrt(20000 Hz - 20 Hz) → μV = 0,99 мкВ
  • sqrt(4*k*25 °C * 1 kΩ * (20 kHz - 20 Hz)) = 0,57357 мкВ
  • 3.5 billion kilowatt-hours per year = 399,5 МВт
  • 60 billion kWh per year = 6,849 ГВт
  • 1/sqrt(2 mH * 2 nF) = 500 кГц
  • 1/(2*pi*10 kΩ * 22 µF) = 0,7234 Гц
  • 1/(2·π·100 Hz·30pF) → ohm = 53,05 МОм
  • −10 dBV + 4 dB + 10 dB − 12 dB → dBu дБн = -5,782 дБн
  • 94 dBSPL → Pa = 1,00237 Па
  • 54 inches + 2 feet → cm = 198,1 см
  • 12 V ÷ 141.5 µA = 84,8 кОм
  • 16 bit * 44.1 kHz * 2 → kbit/s = 1411 кбит / с
  • 1 hundred V / 5 ohms = 20 А
  • furlong per fortnight → cm/minute = 0,9999
  • attoparsec/microfortnight → in/second = 1,004
  • 1 ft / speed of sound = 0,89576 мс

5 ответов5

7

Я очень впечатлен Qalculate! ,

Qalculate!Скриншот

4

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

>>> 2min + 30s

   = 2.5min

>>> 40000km / speedOfLight -> ms

   = 133.426ms

>>> 6Mbit/s * 1.5h -> GB

   = 4.05GB

>>> 2J·s + 3W

  Unification error:

    Cannot unify unit W (base units: kg·m²·s⁻³)
            with unit J·s (base units: kg·m²·s⁻¹)
2

Я в основном делюсь вашими идеями об идеальном калькуляторе и недостатках использования GNU Units и Wolfram, а также запускаю собственный онлайн-калькулятор, который я выложил в сети на PhyCalc.com. Он создает свою собственную алгебру единиц для единиц СИ и использует единицы GNU для преобразования в другие единицы или в качестве запасного варианта, когда само выражение содержит не-единицы СИ.

Его цель - интерпретировать ввод Unicode там, где это имеет смысл. И пытается быть умным в угадывании точного количества и соответствующей единицы. Он автоматически вставляет SI-префиксы. (так же, как мой старый надежный карманный калькулятор Casio в режиме "ENG")

Некоторые комментарии о ваших "идеальных калькуляторах" входах и ответах:

sqrt(4 * k * 25 ° C * 1 кОм * (20 кГц - 20 Гц)) = 0,57357 мкВ

Не совсем точно автоматически считать ° C абсолютной температурой. Также k не совсем однозначный символ для постоянной Больцмана. Однако это должно дать вам требуемый ответ:

sqrt(4*1.38064852e-23J/K*(273.15K+25 °C) * 1 kΩ * (20 kHz - 20 Hz)) in μV

Они терпят неудачу в единицах GNU:

3,5 миллиарда киловатт-часов в год

1 фут / скорость звука

Альтернативы единиц GNU могут быть:

3.5 billion kWh per year
1 ft / mach in ms

1/(2 · π · 100 Гц · 30 пФ) → Ом

Вы можете пропустить часть "→ ом". Вот что я имел в виду, когда умел угадывать количество :-).

−10 дБВ + 4 дБ + 10 дБ - 12 дБ → дБн

GNU Units имеет некоторое преобразование в дБ, но оно определяется как 10 ^(x/10), который является скаляром, который не будет прибавлять к напряжению, где вы предполагаете, что калькулятор должен распознавать, что он должен масштабировать напряжение вместо мощности и вместо этого следует применить масштабирование 10 ^(х /20). Это было бы очень круто, но я боюсь, что это слишком большой мост для юнитов гну. По крайней мере, это даст вам правильный ответ с использованием единиц GNU:

 1V*dB(-10)^0.5*dB(4)^0.5*dB(10)^0.5*dB(-12)^0.5 → dBu

Но я понимаю, почему вы можете найти это не интуитивным.

В противном случае я думаю, что PhyCalc.com может приблизиться к вашему идеальному калькулятору.

Для быстрого доступа к нему я сопоставляю свою выделенную клавиатуру с калькулятором, добавляя к следующей строке имя / значение строки (REG_SZ) в реестре Windows:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AppKey\18]
"ShellExecute"="http://phycalc.com"
2

Для простого решения, которое может быть написано с помощью скриптов, вы можете посмотреть модуль sympy python.

$ cat conv.py

#!/usr/bin/env python
import sys
from sympy.physics.units import *
from sympy.printing.pretty.pretty import pprint
from sympy.abc import x, y, z
from sympy import *

# adding extra units is easy
parsec = 3.26163626*ly

if __name__ == '__main__':
  s_input = sys.argv[1]
  s_unit  = sys.argv[2]
  input = eval(s_input)  # input string
  unit  = eval(s_unit)   # output unit

  print 'Converting:'
  pprint(input)
  print
  print str((input/unit).evalf()) +' '+ s_unit

что дает, например, какое-то умеренно уродливое выражение, преобразованное в мм:

$./conv.py 'tanh(3*m/(2*m))*sinh(60*deg)*1*parsec' 'mm'


Converting:
                           /π\
3.08574615554565e+16*m*sinh|--|*tanh(3/2)
                           \3 /

3.48955431541888e+19 mm

Конечно, это действительно заядлый код, который не проверяет совместимость блоков ввода и вывода, поэтому в результате вы можете получить дополнительные единицы.

$./conv.py 'c' 'parsec'

Converting:
299792458*m
-----------
     s

9.71539598165644e-9/s parsec
-1

Wolfram Alpha способен на математические вычисления и не требует от вас загрузки или установки чего-либо.

Проверьте здесь, как использовать его математические функции.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .