読者です 読者をやめる 読者になる 読者になる

プログラミング言語別コメント記法

コメントアウトするときのやり方が言語ごとに違うのでネットで探して一覧にしてみました。ちゃんと表示できるかな。 Java => // or /* */ or /** */HTML => XML => CSS => /* */bat => rem or ::PHP => // or # or /* */JavaScript => // or /* */VBA => ' o…

加減乗除余冪 プログラミング言語別 四則演算+剰余べき乗

足し算引き算掛け算の演算子はどの言語でも同じですが、割り算あたりから違います。 Ruby => + - * / % **C => + - * / % pow(x,y)Python => + - * / % **(or pow(x, y))Java => + - * / % Math.pow(x, y)J(プログラミング言語) => + - * % |~ ^R => + - * /…

余ったビールを薄めて清涼飲料水になるか。 というアイデアです。 余ったと言っても飲みかけではなくて、缶ビールなどまだ開けていないやつです。 これがアルコール度5%なので、5倍以上に薄めれば、酒類でなくなる。 いわゆるドリンク剤とか、清涼飲料水のた…

組合せ

問題 7枚のカードから3枚選ぶ組合せの数を求めよ。 nCr = n! / { r! * (n - r)! } に当てはめて、 7! / (3! * 4!) = (7 * 6 * 5 * 4 * 3 * 2 * 1) /(3 * 2 * 1 * 4 * 3 * 2 * 1) =(7 * 6 * 5) / (3 * 2) = 7 * 5 = 35 J言語では ! (エクスクラメーションマー…

J701でのplot

J Programming Languageで、グラフを書くのに load 'plot' plot 1 o. 0.2 * i.60 というふうに'plot'というパッケージをロードします。上の例ではこれでサインカーブが書けます。 さて、以前はプログラムをダウンロードすると自動でいろんなパッケージもダウ…

UbuntuでJ Programming Language

UbuntuでJ言語はできますか? できます。 Ubuntuソフトウェアセンターでj programming language, j701, j softwareとか検索しても出てきません。少なくともUbuntuパッケージはないようです。ところが! j softwareのページに行くとLinux版があるではないです…

素数センス

辞書を引いていて、1139ページの1139という数字が素数かどうか気になりました。 手もとにパソコンがなかったので、紙で計算しようと思って、次の手順で確認しました。 40x40=1200 , 30x30=900 , 35x35=1225なので、35以下の素数で割ってみる。 これは1139が…

対数の数の大小の比較

次の数の大小を比較せよ。 log_{0.5}(3) , log_{0.5}(2) , log_{3}(2) , log_{5}(2) 対数は J言語では ^.(キャレットドット)という二項動詞を使います。 左側に底、右側に変数を置きますので、上記の対数を計算してみると、次のようになります。 (0.5 ^. 3…

日本地図

J言語がバージョン7.01になって、グラフを描く機能がGoogle Chartになりました。と言いながらよくわかっていないのですが、遊んでいたら日本地図が描けたのでアップします。 'reset &cht=map:fixed=20,120,50,150&chs=300x300 show'jgc'' いままでどおり、 p…

j701

久しぶりにJ言語のサイト(www.jsoftware.com)に行ってみたところ、バージョンが7.01に上がっていました。 インストールしてみたところ、フロントエンドがブラウザーに変わっていて、いろいろ戸惑っています。 たぶん便利になったのだろう、と思うものの、J言…

指数

Q. ln 10 = 2.3 、log 2 = 0.3 のとき、ln 2 を求めよ。log 2 = 0.3 より、2 = 10 ^ 0.32 = ln (10 ^ 0.3 ) = 0.3 * ln 10 = 0.3 * 2.3 = 0.69一般に ln x = ln 10 * log x ^ 0.69 1.99372

調和平均

英語の数学の記事を読んでいたら、harmonic mean ということばが出てきました。算術平均と幾何平均は聞いたことあるけど調和平均とは何か。その時の数式は次のようなものです。 m = { 2 * a * b } / { 1 / a + 1 / b } そして説明の中に「調和平均は算術平均…

集合の要素の個数

問 2つの集合A、Bで n(A) + n(B) = 10 かつ、n(A ∪ B) = 7 とするとき、n(A̅ ∩ B) + n(A ∩ B̅) を求めよ。 集合はAPL/J言語で扱えるだろうか。扱えるのですが、何か要素を入れないと計算できないかもしれない。とりあえずやってみよう。 a =: 1 2 3 4 5 b =:…

場合の数

問 大中小3つのサイコロを転がした時、3つの目の積が4の倍数になる場合は何通りあるか。 a =: 1 2 3 4 5 6 +/ 0 = 4 | , a */ , a */ a 135 久しぶりのAPL/J言語なのでちょっと試行錯誤をしてしまいました。 全部の場合の積の行列を4で割って余りがゼロなの…

デカルトの葉線(Folium of Descartes)

デカルトの葉線と呼ばれる曲線があります。 ウィキペディアにパラメータ表示の数式がありましたので、苦労してAPL/J言語で描いてみました。 load 'plot' fx=: 3 : '(3*y) % (1 + y^3)' fy=: 3 : '(3*y^2) % (1 + y^3)' param1=: steps _0.8 100 1000 param2=…

行列からの切り出し

]x=:i.3 3 0 1 2 3 4 5 6 7 8 ]y=:i.3 0 1 2 ]z=:x ,"1 0 y 0 1 2 0 3 4 5 1 6 7 8 2 というような3x4の行列zから逆に3x3の行列xとベクトルyを切り出す方法を考えてみる。 解答 }:"1 z 0 1 2 3 4 5 6 7 8 x = }:"1 z 1 1 1 1 1 1 1 1 1 {:"1 z 0 1 2 y = {:"…

確率分布

ここで (自然対数の底) だから が成り立つ。一般に定数 に対して、 である確率分布をポアソン分布 という。この平均と分散は、 , である。 ポアソン分布は「まれに起こる現象」の確率を表す。

確率分布

例5 ポアソン分布> ある通りで空のタクシーが通る回数を調べたら、平均すると 1時間に 回であった。空のタクシーがいつ通るかはまったく 偶然であるが、微小時間に2台以上通ることはほとんどないと する。このとき1時間に通る空のタクシーの台数を として、 …

数学の本を読む

IversonがHogbenの本を引用して、 mathematics is the language of size, shape and order (数学とは大きさと形と順序の言語である) と言っていますが、これは相当特殊な数学の定義であって、わたしに一番ぴったり来るのが、 アメリカの数学探偵ドラマ「ナン…

確率分布

p.4 例4 壷の中に個の玉が入っていて、そのうち個が赤玉、 個が白玉である。この壷から度に個の玉を取り出す。 このとき、取り出した玉は壷に戻さない(非復元抽出)。 この取り出した個のうち赤玉の数をとする。このときの確率は となる。 この分布を超幾何分…

確率分布

p.3 例3 パスカル分布 = 負の二項分布> 成功確率のベルヌーイ試行で、 回成功するまでの失敗回数をとすると となる。この分布をパスカル分布または負の二項分布という。 負の二項分布(negative binomial distribution)と呼ばれるのは、 のマクローリン展開 …

確率分布

p.2 例2 成功確率のベルヌーイ試行で、 初めて成功するまでの間に何回失敗したかを数え、 その失敗の回数をとする。 ということは、最初から連続回失敗し、 回目に初めて成功した場合であるから、その確率は となる。この分布を幾何分布という。 平均と分散…

確率分布

の場合二項分布 の値を棒グラフにする、というのをAPL/J言語でやってみました。 の場合との場合です。 解説を後回しにして、結果から書きます。 f=:( ( (5%6)^(10&-))*( (1%6)&^)*(!&10)) 'stick' plot f i.10 f=:( ( (5%6)^(45&-))*( (1%6)&^)*(!&45)) 'sti…

確率分布

確率変数のとる値が、のように定まっていて、各値をとる確率が、で与えられているとき、を離散型確率変数と言い、その分布を離散型確率分布という。ここでである。 同じく高知工科大学の基礎数学ワークブックの「確率分布」ので出しをmimeTeXを織り交ぜて書…

三角関数

p.31 加法定理

三角関数

p.29 0°から360°の範囲で、のグラフを描け。 load 'plot' plot sin i.361 0°から360°の範囲で、のグラフを描け。 load 'plot' plot cos i.361 p.29 -85°から170°の範囲で、のグラフを描け。 x=:85 -~ i.170 plot x; tan x

三角関数

p.26 例題1:を満たす角度を求めよ。 deg=:(1p1%180)&* deg 180 3.14159 sin=:1&o.@deg sin ^:_1 (0.5) 30 sin 30 0.5 例題2:を満たす角度を求めよ。 %:2 1.41421 2 %~ %:2 0.707107 (sin ^:_1) - 2 %~ %:2 _45 sin _45 _0.707107 p.26 問(1) (2) (3) (sin ^:…

三角関数

p.20 前頁の性質を一般化する。 p.21 p.21 平面座標の三角表示。 平面座標は次のように表示できる。 Pの座標:

三角関数

p.19 問1:45°と135°と225°と315°の時の正弦、余弦、正接を求めよ。 cos 45 0.707107 sin 45 0.707107 tan 45 1 cos 135 _0.707107 sin 135 0.707107 tan 135 _1 cos 225 _0.707107 sin 225 _0.707107 tan 225 1 cos 315 0.707107 sin 315 _0.707107 tan 315…

三角関数

p.17 0° ≦ ≦ 360° である角度 に対して、x線上の線分OQを反時計方向に だけ回転した線分をOPとする。OP = r であり、Pの座標が(x, y)のとき、 と定義する。r=1 のとき、 のように簡単になる。この式を三角関数の定義としてもよい。 例:=0° のとき、点Pの座…

余弦定理3

p.16 池をはさんだ地点B、C間の距離BCを求める。AB=10m、AC=9m、角BAC=63°である。 deg=:(1p1%180)&* deg 180 3.14159 c=:10 [ b=:9 [ A=:63 ]a=:%:(2*b*c*2 o.deg A)-~(c^2)+b^2 9.96402 答え:約10m 例1:三角形ABCにおいて、である。よって、 と表される…

三角関数

余弦定理を用いて解く。 p.15 例題:三角形ABCにおいて、b=7、c=6、A=120°のとき、aを求める。 deg=:(1p1%180)&* b=:7 c=:6 A=:120 b^2 49 c^2 36 (c^2)+b^2 85 2*b*c*2 o.deg A _42 (2*b*c*2 o.deg A)-~(c^2)+b^2 127 ]a=:%:(2*b*c*2 o.deg A)-~(c^2)+b^2 1…

ポーランド記法

前回の余弦定理をAPL/J言語で表記しようとしていて、HP電卓の逆ポーランド記法やLips(Scheme)のポーランド記法だったらどうするのだろうとか、なぜHP電卓やLips(Scheme)では問題ないのにAPL/J言語でつまずいているのかとか、思いついたので考察します。 余弦…

三角関数

p.14 余弦定理 三角形ABCで2辺の長さb、cとその間の角Aがわかっているとき、残りの辺の長さaを求めることを考える。 APL/J言語は数学表記の革命みたいな面があるので、こういった証明問題もAPL/J言語で表記したい誘惑に駆られるのですが、むずかしいですね。…

三角関数つづき

p.12 正弦定理(law of sines) 三角形ABCで、頂点A、B、Cに対する辺の長さをそれぞれ、a、b、cとする。このとき次の定理が成立する。 ここでRは三角形ABCの外接円の半径である。 p.13 例題 三角形ABCで、、のとき (1) を求めよ。 (2) 外接円の半径Rを求めよ。…

三角関数つづき

p.6 角度が90°以上の場合のsin、cos、tanを考える。角度135°、線分の長さのとき、Pの座標は(-1, 1)なので、 となる。 角度135°、線分の長さのとき、Pの座標は(-3, 3)なので、 となり一致する。問:p.8 の場合に、とのときの点Pの座標を求め、三角比を計算せ…

三角関数つづき

p.5 問(1):x軸、y軸があって交点をOとする。x軸から30度の角度で、長さ2の線分OPがある。Pの座標と正弦、余弦、正接を求めよ。 deg=: (1p1%180)&* deg 180 3.14159 deg 30 0.523599 r=:2 ]y=: r*1 o. deg 30 1 ]x=: r*2 o. deg 30 1.73205 1 o. deg 30 NB. …

三角関数つづき

問1:長さ3mのはしごが壁に立てかけてある。はしごと地面のつくる角が56度であるとき、はしごが届いている高さと、はしごの端から壁までの距離を求めよ。y = r * 1 o. theta x = r * 2 o. theta を用いる。 theta =: deg 56 r =: 3.6 ]x=: r * 1 o. theta 2.…

三角関数つづき

テキスト4ページ目の例。ある人が木から10m離れた場所から木の頂点を見上げたところ、水平からの角度が23度であった。人の目の高さを1.5mとすると木の高さは何メートルか? y = x * 3 o. theta を用いる。 deg=:(1p1%180)&* deg 180 3.14159 10.0 * 3 o. deg…

三角関数(つづき)

2ページ目に入りました。 タンジェントをサインとコサインから計算します。 y = r * 1 o. theta x = r * 2 o. theta 3 o. theta = y%x 1行目と2行目のxとyを3行目に代入すると 3 o. theta = (1 o. theta) % (2 o. theta ) となります。 また、三平方の定理(…

三角関数(つづき)

まだ1ページ目です。1ページ目の下の方に角度が30度、45度、60度のときのサイン、コサイン、タンジェントの一覧を完成せよ、という問題があります。 theta =: 30 45 60 1 o. deg theta 0.5 0.707107 0.866025 2 o. deg theta 0.866025 0.707107 0.5 3 o. deg…

三角関数

三角関数がよくわからないので、ネットでテキストを調べてみたら、高知工科大学の基礎数学ワークブックの 「三角関数」がよくわからないときに開く本 というのが見つかりました。PDFでダウンロードできます。 これをAPL/J言語を片手に読んでみたいと思います…

number base conversion (ベース変換)

任意の数をn進数で表記したり、n進数表記の数を10進数の数に変換したりしたい。 具体的には0から9とaからzの36文字を36進数と考えると、 zz 1295 ということです。 36bzz 1295 36b1000 46656 x: 36bthisisapen 2994670252589855 これを逆に変換する関数を作…

定数

自然対数の底eや円周率piを含めた定数の取り扱いについてちょっとおもしろかったのでご紹介。 3e2 300 1.23e4 12300 アルファベットのイー(e)はこのように大きな数を指数表記するのに使われます。eはexponentの略ということです。 同じような考え方で、自然…

123て8進法でいくつ?

123(ひゃくにじゅうさん)は10進法で123です。 123は3が入っているので2進法や3進法ではありませんが、可能性としては4進法以上のn進法での数である可能性があります。 というわけで123に限ったわけではありませんが、数字列をn進法でいくつだろうと思うこと…

素数遊び

11は素数です。101も素数です。ところが1001以上はそすうではありません。 (,. a) ;q:a=:1}.1+10^i.22r1 +----------------------+------------------------------------------------------------------------+ | 11| 11 0 0 0 0 0 0 0| | 101|101 0 0 0 0 0…

eachbox

Math for the Layman by Kenneth Iverson を読んでいて、11章のGuessing gamesというところの1題目にeachboxというのが出てきます。 a=: 3 4 i. a 0 1 2 3 4 5 6 7 8 9 10 11 i.3 0 1 2 i.4 0 1 2 3 eachbox=: &.> i. eachbox a +-----+-------+ |0 1 2|0 1 …

減衰

Kenneth IversonのMath for the Laymanを読んでいたらdecay(減衰)の話が出てきてかわいいグラフが描けたのでご紹介。 load 'plot' decay=: ^ @ - @ (]%[) plot (sin * 6 & decay) 1r10 * i.300

isprime?

153とか157とか素数かどうかと考えたとき、それをチェックするプログラムをAPL/J言語で作りたいと思いました。153は3で割れるので素数ではありませんが、157は多分素数です。 q:153 3 3 17 q:157 157 APL/J言語には素因数分解する関数q:(キューコロン)があり…

重なりなしの二つずつ

数列から数字を二つずつ取り出して処理する方法を前回書きました。前回のは移動しながら取っていくもので、いわゆる移動平均などに使えるものです。 いっぽう、重なりなしでいくつかずつ処理したい場合はどうするか。 左側引数をマイナスにすると、重なりな…