Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
コマンドライン電卓bcコマンド
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Osumi, Yusuke
July 19, 2020
Technology
770
0
Share
コマンドライン電卓bcコマンド
「新しいLinuxの教科書」を読む会 オンライン #3
での発表資料です。
https://linuxbook.connpass.com/event/180887/
Osumi, Yusuke
July 19, 2020
More Decks by Osumi, Yusuke
See All by Osumi, Yusuke
本の紹介の補足
ozuma
1
400
gitサービス3兄弟
ozuma
0
410
簡体字は楽
ozuma
0
480
ソフトウェアは固定資産
ozuma
0
440
ASCIIコードの小話
ozuma
0
450
今いるディレクトリを消すとどうなる
ozuma
1
390
名前付きパイプ FIFO
ozuma
0
550
文章、作文技法 リモートワーク
ozuma
1
920
CentOSの今後のリリース(簡易説明)
ozuma
0
410
Other Decks in Technology
See All in Technology
3つのボトルネックを解消し、リリースエンジニアリングを再定義した話
nealle
0
360
AI環境整備はどのくらい開発生産性を変えうるか? #AI駆動開発 #AI自走環境
ucchi0909
0
110
「決め方」の渡し方 / How to hand over the "decision-making process"
pauli
8
1.3k
AgentCore RuntimeからS3 Filesをマウントしてみる
har1101
3
400
システムは「動く」だけでは足りない 実装編 - 非機能要件・分散システム・トレードオフをコードで見る
nwiizo
2
310
主催・運営として"場をつくる”というアウトプットのススメ
_mossann_t
0
140
プロダクトを触って語って理解する、チーム横断バグバッシュのすすめ / 20260411 Naoki Takahashi
shift_evolve
PRO
1
260
AIエージェントを構築して感じた、AI時代のCDKとの向き合い方
smt7174
1
150
20260410 - CNTUG meetup #72 - DiskImage Builder 介紹:以 Kubespray CI 打造 RockyLinux 10 Cloud Image 為例
tico88612
0
120
ADOTで始めるサーバレスアーキテクチャのオブザーバビリティ
alchemy1115
2
270
ふりかえりがなかった職能横断チームにふりかえりを導入してみて学んだこと 〜チームのふりかえりを「みんなで未来を考える場」にするプロローグ設計〜
masahiro1214shimokawa
0
330
2026年春から始めるOpenTelemetry | sogaoh's LT @ PHP Conference ODAWARA 2026
sogaoh
PRO
0
100
Featured
See All Featured
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.4k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.1k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
120
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
310
The SEO Collaboration Effect
kristinabergwall1
0
420
Are puppies a ranking factor?
jonoalderson
1
3.3k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
200
Optimizing for Happiness
mojombo
378
71k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
310
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
100
Optimising Largest Contentful Paint
csswizardry
37
3.6k
Transcript
コマンドライン電卓 bc コマンド @ozuma5119 1 「新しいLinuxの教科書」を読む会 オンライン #3 2020/07/19
Linuxのコマンドラインで計算したい 2 3 + 7 = ? sin(π/2) = ?
(4.3)3 = ?
Linuxのコマンドラインで計算したい 3 • exprコマンド : expr 1 + 1 •
bashの算術式展開 $((1+1))) • bcコマンド : echo "1 + 1" | bc
基本的な四則演算:もちろんできる 4 $ bc bc 1.06.95 ..(略)... 1+1 2 1-1
0 2*3 6 赤文字が入力、黒文字が出力
基本的な四則演算:もちろんできる 5 $ bc bc 1.06.95 ..(略)... 1+1 2 1-1
0 2*3 6 ※割り算は注意 デフォルトでは小数点切り捨て なので、scaleでケタ数を指定する 2/3 0 scale=5 2/3 .66666 ↑ 小数点の最初の0は省略される (他のプログラミング言語でも 一般的) 赤文字が入力、黒文字が出力
シェルスクリプトで使うとき 6 $ echo "1 + 1" | bc 2
$ 計算式をechoなどでパイプで渡してあげれば良いだけ もうちょっとちゃんと言うと…… → bcコマンドは標準入力を算術式として評価し、計算結果を標準出力へ出力 する
数式をファイルに書いてもOK 7 $ cat math.txt (1+3+5+90)*3 $ bc < math.txt
297 ※標準入力に数式を与えている
for などあるのでプログラムも書けます 8 $ cat math2 for (i=1; i <
10; i++) { i^2 } $ bc < math2 1 4 9 16 25 36 49 64 81 i=1から9までの、 iの2乗を出力
ここからおまけ:高度な計算 9 bc -l オプションを付けて起動すると、数学ライブラリがロードされる。 これにより以下の関数が使える • s(x) : sin(x)
[正弦関数] • c(x) : cos(x) [余弦関数] • a(x) : arctan(x) (または tan-1(x)) [逆正接関数] • l(x) : log e (x) = ln(x) [自然対数] • e(x) : ex (eは自然対数の底) [自然指数関数] • j(n,x) : [n次ベッセル関数]
タンジェント tan(x) なんて軟弱なものはない 10 自分で作れるでしょ!! • tan(x) = sin(x)/cos(x) なので……
◦ t(x) = s(x)/c(x) ※ 三角関数・自然対数・指数関数exp・べき乗があれば、 世の中の関数はだいたい作れる
例題:急にコマンドラインで円周率が20ケタ必要になった!!!!! 11 どうする!
例題:急にコマンドラインで円周率が20ケタ必要になった!!!!! 12 1. tan(π/4) = 1 である 2. よって、tanの逆関数を4倍すれば円周率πが出てくる 45度
= π/4 tan(π/4) = b/a = 1 tan-1(1) = arctan(1) = π/4 よって、 4 * arctan(1) = π $ bc -l scale=20 4 * a(1) 3.14159265358979323844 a b