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
Osumi, Yusuke
July 19, 2020
Technology
0
680
コマンドライン電卓bcコマンド
「新しいLinuxの教科書」を読む会 オンライン #3
での発表資料です。
https://linuxbook.connpass.com/event/180887/
Osumi, Yusuke
July 19, 2020
Tweet
Share
More Decks by Osumi, Yusuke
See All by Osumi, Yusuke
本の紹介の補足
ozuma
1
350
gitサービス3兄弟
ozuma
0
360
簡体字は楽
ozuma
0
420
ソフトウェアは固定資産
ozuma
0
380
ASCIIコードの小話
ozuma
0
400
今いるディレクトリを消すとどうなる
ozuma
1
320
名前付きパイプ FIFO
ozuma
0
460
文章、作文技法 リモートワーク
ozuma
1
840
CentOSの今後のリリース(簡易説明)
ozuma
0
360
Other Decks in Technology
See All in Technology
GitHub ActionsをTypeScriptで作ろう!
sansantech
PRO
2
140
本番環境への影響リスクが低い Real Application Testing (SQL Performance Analyzer) の実施方法の検討と実践
jri_narita
0
230
名単体テスト 禁断の傀儡(モック)
iwamot
PRO
1
340
水耕栽培に全部賭けろ
mutsumix
0
170
KubeCon + CloudNativeCon Europe 2025 Recap: The GPUs on the Bus Go 'Round and 'Round / Kubernetes Meetup Tokyo #70
pfn
PRO
0
170
熱々🔥のUDN🍜を喰らえ❗マルチテナントもVM統合も思いのまま❗新機能で切り拓くk8sネットワークの未来
tsukaman
0
150
Software Architecture in an AI-Driven World
atty303
64
27k
スキーマと型で拓く Full-Stack TypeScript / TSKaigi 2025
altech
2
620
(なるべく)無料で始めるTerraformのインフラ構築体験
sakamossaaaan
1
110
VueUseから学ぶ実践TypeScript #TSKaigi #TSKaigi2025
bengo4com
1
270
トップエンジニアが語るDX最前線 / 20250517 Kazutoshi Ono & Ken Yamazaki
shift_evolve
0
160
Platform Engineering for Private Cloud
cote
PRO
1
160
Featured
See All Featured
Thoughts on Productivity
jonyablonski
69
4.6k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
180
53k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.6k
What's in a price? How to price your products and services
michaelherold
245
12k
Embracing the Ebb and Flow
colly
85
4.7k
Optimising Largest Contentful Paint
csswizardry
37
3.2k
KATA
mclloyd
29
14k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
810
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.5k
Product Roadmaps are Hard
iamctodd
PRO
53
11k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
Building Adaptive Systems
keathley
41
2.5k
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