Last modified 2024/09/18
iOS14のリリースと共に, ショートカットアプリに「計算式」というアクションが追加されました.
これによって複雑な演算をより簡単に行えるようになります.
※価格は記事執筆時のものです. 現在の価格はApp Storeから確認ください.
レビュー時のバージョン : v4.0.1
スポンサーリンク
計算式
「計算式」アクションではメジャーなプログラミング言語と似たような演算式を書き, 結果を出力することができます.
リリースして間もない頃に説明した通り, これまでのショートカットアプリの多くは
命令
命令 + 数or文字
といったシンプルなものでした.
そのため演算が少しでも増えるとアクション数が増え, 全体の動作も見た目もよくありませんでした.
「計算式」アクションでは枠内に数式を書くことで, その結果を出力します.
ザッと触った結果, 四則演算と指数, 括弧に対応しているようです.
因みに掛け算の記号は*(半角アスタリスク), 割り算の記号は/(半角スラッシュ)を使っても大丈夫です.
変数を使う
変数を計算式に混ぜて計算することももちろん可能です.
ただし, 変数を並べるとその数を繋げて一つの数として扱うようです.
この結合処理は例えば
2^変数変数
としたときに変数の結合を優先するため, 適切に演算記号を配置したり括弧を使うことで回避する必要があります.
使用可能な演算・記号
現時点で分かっている, 「計算式」アクションで使用可能な演算や定数, 記号は以下となります.
掛け算, 割り算のように, 複数の記述が可能な例があります.
記述例 | |
---|---|
足し算 | 1+2 |
引き算 | 1-2 |
掛け算 |
1×2 1*2 |
割り算 | 1÷2 1/2 |
最大 ※14 | max(1,2) |
最小 ※14 | min(1,2) |
括弧※1 | ( ) |
指数(e表記) | 1e5 2E-2 |
累乗*2 | 1^2 pow(1,2) |
平方根 | sqrt(2) |
立方根 | cbrt(2) |
階乗 | 3! |
常用対数 | log(3) |
自然対数 | ln(3) |
床関数 天井関数 |
floor(0.1) ceil(0.1) |
絶対値 | fabs(-2) |
三角関数(弧度法)※3 | sin(x) cos(x) tan(x) |
三角関数(度数法)※11 | sind(x) cosd(x) tand(x) |
逆三角関数(弧度法)※3 | asin(x) acos(x) atan(x) |
逆三角関数(度数法)※11 | asind(x) acosd(x) atand(x) |
双曲線三角関数※3 | sinh(x) cosh(x) tanh(x) |
双曲線逆関数※3 | asinh(x) acosh(x) atanh(x) |
剰余演算※4 | fmod(3,2) 3mod2※7 |
もっとも近い整数に丸める(四捨五入)※13 |
rint(1.2) integer(1.2) |
xとyそれぞれの2乗の和の平方根 ※14 | hypot(3,4) |
割合 | 100% |
円周率 | π pi |
ネイピア数※5 | e |
黄金比※6 | φ |
ビットシフト(右シフト)※8 | 11>>2 |
ビットシフト(左シフト)※8 | 3<<2 |
論理演算(論理積)※9 | 1and1 1AND1 |
論理演算(論理和)※9 | 0or1 0OR1 |
論理演算(排他的論理和)※9 | 0xor1 0XOR1 |
論理演算(否定論理和)※9 | 0nor1 0NOR1 |
ガンマ関数の対数※10 | lgamma(3.4) |
ガウスの誤差関数 | erf(1.8) |
相補誤差関数 | erfc(3.4) |
第一種ベッセル関数 |
j0(3.4) j1(3.4) |
第二種ベッセル関数 |
y0(3.4) y1(3.4) |
精度(小数点以下の指定桁数で丸め)※12,*13 |
precision=10 pi |
※1 {}や[]は使用不可
※2 a^bc のように記述するとa^(bc)として扱われます
※3 変数xの単位はラジアン. またtan(pi/2)などはNaNを返します
ここまで充実しながらsec,cosec,cotはないようです
※4 法が負数だろうが整数ですらなかろうがやってくれます
対象の数が負数の場合, 法より絶対値が小さくなった時点で終了します, 例えばfmod(-1,2)は1でなく-1を返します
※5 exp(n)はe×nと見なされ, eのn乗として機能しません
※6 φ(n)はφ×nと見なされ, オイラー関数として機能しません
※7 fmod( , )と同様, 結果は絶対値最小剰余で返します, また"mod"の前後にスペースが入っても問題ありません
※8 対象の数(10進数表記)を左右にビットシフトさせます, 例えば上で書いた例の11>>2は10進数の11(2進数で1011)を2だけ右にビットシフトさせると2進数で10なのでこの10進数の2として値を返します
※9 真のとき1、偽のとき0を返します、ただしnorについては64ビットで反転するため、大抵2^64前後の大きな値で返ってきます
※10 ようはlgamma(x)=log(Γ(x))です
※11 単位は度です
※12 エラーにはなりませんがprecisionの値は15を越えると15で扱われます. おそらくシステム側の精度が小数点以下16(15?)桁なのが原因と考えられます
※13 (おそらく)iOS17以降使えないようです
※14 f(a,b)型の関数はiOS18ではbが100以上になると構文エラーになります
例1:判別式を計算するレシピ
画像は2次関数からその判別式を計算するレシピの一例です.
必要な係数を取得して判別式を得るわけですが, これまではPICのような原始言語しか無かったため
という簡単な計算ですら数アクションを必要としました.
これが計算式アクションによって1アクションで完結します.
多くの変数を扱うこと自体はまだ面倒な工程が不可欠ですが仕方ないですね.
例2:文字式に値を代入
変数を中に組み込めるのですから, 計算式そのものだって入れることができます.
画像では予め指定した変数と文字式がありますが, 実用を考えれば例えば「入力を要求」や「クリップボードを取得」などから得ることとなるでしょう.
文字式の文字は「テキストを置き換え」で具体的な数に置き換えれば, 数式がショートカットにおける計算式として評価されさえすれば, 計算可能となります.
より実用的な使い方はこちらかもしれませんね.
〆
これでちょっと面倒くさい演算も, ショートカットでできる範囲内であればこれ一つで完結します.
ただiOS14で変わったショートカット, フォルダ機能もついて悪くはない…と言いたいのですが
- 編集するときにアクションを上に移動させるのはいいが下に移動するときスクロールしてくれないので面倒
- 「複製」は分かるが「コピー」の使いみちがわからないアクションを好きな場所から上下に貼り付けられる
- 「メニューから選択」「リストから選択」で項目が一定数を超えた時に出てくる検索ボックスが表示されなくなった
- そもそも上記で項目が多いと動作が重くなる
- ボタンを含め選択枠が画面上になったためタップしづらい
, この辺りが気になります.
追記
2023/5/22
以下を訂正しました.
- 誤差関数:ert → erf
- 相補誤差関数:ertc → erfc
2022/05/15
以下を追加しました.
- integer(四捨五入)
- ベッセル関数
- 精度関数
2021/05/06
- 指数表記(e表記)
を追加しました.
2021/01/29
- 剰余演算 a mod b
- 割合 n%
を見つけたので追加しました.
iOS14.4がリリースされてから確認したためiOS14.3以下で使えるかは不明です.
2021/09.02
- 三角関数(度数法)
- 逆三角関数(度数法)
- ビットシフト(左、右)
- 論理演算(論理積、論理和、排他的論理和、否定論理和)
- ガンマ関数の対数
- ガウスの誤差関数
- 相補誤差関数
を追加しました.