APL/J言語 の検索結果:

調和平均

…50 km の平均でも同じになります。 ( # %~ +/ ) &. ( %"_ ) 48 48 50 48.6486 APL/J言語の式の説明ですが、%"_ で、数字それぞれを逆数にします。その結果を# %~ +/ で、算術平均を出して、再度逆数を取ります。f &. g が引数に g を作用させて、それから f を作用させて、その結果に g の逆関数を作用させるという意味なのでこういう結果になります。これはAPL/J言語のオンラインマニュアルのフレーズ集にありました。

集合の要素の個数

…、n(A ∪ B) = 7 とするとき、n(A̅ ∩ B) + n(A ∩ B̅) を求めよ。 集合はAPL/J言語で扱えるだろうか。扱えるのですが、何か要素を入れないと計算できないかもしれない。とりあえずやってみよう。 a =: 1 2 3 4 5 b =: 3 4 5 6 7 # a , b 10 # ~. a , b 7 条件はこんな感じですね。すると、 ( # b -. a ) + ( # a -. b ) 4 うむぅ。答えは合ってます。

場合の数

… 135 久しぶりのAPL/J言語なのでちょっと試行錯誤をしてしまいました。 全部の場合の積の行列を4で割って余りがゼロなのの数を数えています。 受験ではコンピューターをを使えないので、次のように考えます。 全部の場合の数 6^3 = 216 とおり。 このうち、3つの目の積が4の倍数にならないのは、全部が奇数の場合と、二つが奇数で三つ目が2か4のときである、。 全部が奇数の場合の数 3^3 = 27 とおり。 二つが奇数の場合 => 3^3 = 9 とおり。これが、6通り(…

高校教科としての数学

… すごいですねー。高校でこんなことまでやるんですね。ま、それはともかく、行列をどう表すかがとりあえず課題で、実際には, という行列を、 { ( 3 , -2 ) , ( - 2 , 1 ) } と書いて感覚的に等価かどうか。趣味的にはAPL/J言語の A =: 2 2 $ 3 _2 _2 1 という方が好きだし、正しいと思っていますが、これではフツーわからないと思うので、上記のような書き方がいまのところの結論です。 というようなことをぐだぐだ考えるのが好き。その材料にします。

[APL/J言語] [数学] [mimeTeX]ブール代数

…)など応用上重要な演算子が 、 、 の組み合わせで記述される( または も と残りの一つの組み合わせで記述される。)。ところで、APL/J言語では、次のような演算子があります。 (*./~;+./~;=/~;~:/~;-.@+./~) (0 1) +---+---+---+---+---+ |0 0|0 1|1 0|0 1|1 0| |0 1|1 1|0 1|1 0|0 0| +---+---+---+---+---+ mimeTeXでは tex:\perp で表記できます。

デカルトの葉線(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=: steps _100 _1.2 1000 param=: param1 , param2 plot (fx;fy) param

12メートル

…) いつも使っているAPL/J言語で計算して見よう。 2.54 * 20 * 1p1 159.593 159.593センチということは1.6メートルですね。けっこう進むもんだ。 さて16歩ということは2歩で1回転ですので、8回転です。 1.6メートルの8回転進んだことになります。 1.6 * 8 12.8 というわけでわたしの現在の一輪車手放し乗車は12メートルということがわかりました。 次に、50メートル進むには何歩漕げばいいか計算してみます。 50メートル割る1.6で回転…

数学の本を読む

…数や確率分布の本を APL/J言語の助けを借りながら読んでいます。 三角関数のときも若干感じていたのですが、確率分布でほとんど確信になったのが数式大切です。 超あたまのいい人たちが考えて、論文を書き、議論して、その結果、主流となった 数式表記は分かりにくいと感じても、実は一番理解に近いというか、それ以外にない、まずは 数式ありきで考えていくのが正道だと思います。 ただ人間の頭はわからないものは拒否する性格がありますので、なんとか取っ組ませる必要がある。 そのために、手で転記し…

確率分布

…フにする、というのをAPL/J言語でやってみました。 の場合との場合です。 解説を後回しにして、結果から書きます。 f=:( ( (5%6)^(10&-))*( (1%6)&^)*(!&10)) 'stick' plot f i.10 f=:( ( (5%6)^(45&-))*( (1%6)&^)*(!&45)) 'stick' plot f i.45 にしてみました。 が大きくなると平均、分散の正規分布に近づくと書いてありますが、 n=:100 p=:1%6 n*p 16.…

確率分布

…いてみました。確率がAPL/J言語向きかどうかはわかりませんが、離散数学に向いていることはたしかなようなので、すこしかじってみます。上記の文章はよくわかりませんが、つまり、サイコロだったらサイコロのいろんな数が出る確率を1/10とか1/3とかだとするとその合計が1となるような感じですよね。1/10とかの確率を確率変数と呼んだり、確率は必ず大なりイコールゼロだとかが書いてあったりします。このとき任意の関数f(x)に対し、と定める。Xの平均と分散は である。 p.2 例1 サイコ…

三角関数

…0.866025 0.5 % %:0.75 0.57735 cos 120 _0.5 sin 120 0.866025 tan 120 _1.73205 cos 210 _0.866025 sin 210 _0.5 tan 210 0.57735 cos 330 0.866025 sin 330 _0.5 tan 330 _0.57735 p.19 問:60°、120°、240°、300°、50°、130°、230°、310°について計算する。 APL/J言語による計算省略。

三角関数

….63312e16 APL/J言語で、とても小さい数を0、大きい数は_(無限大)と表示させるにはどうしたらいいのだろう。 調べて追記します。 追記:0は0以外と一致せず、無限大は無限大以外と一致しないとのことです。このままでいきましょう。 p.18 問:180°と270°と360°の時の正弦、余弦、正接を求めよ。 sin=:1&o.@deg sin 180 1.22465e_16 cos=:2&o.@deg cos 180 _1 tan=:3&o.@deg tan 180 _…

ポーランド記法

前回の余弦定理をAPL/J言語で表記しようとしていて、HP電卓の逆ポーランド記法やLips(Scheme)のポーランド記法だったらどうするのだろうとか、なぜHP電卓やLips(Scheme)では問題ないのにAPL/J言語でつまずいているのかとか、思いついたので考察します。 余弦定理ではややこしそうなので、次の式で考えます。 HP電卓で逆ポーランド記法で電卓をたたくときはつぎのような感じで頭が働きます。 まず、1と2をスタック入れて足す。そのあと3と4を掛けたものを5で割ったも…

三角関数

…めることを考える。 APL/J言語は数学表記の革命みたいな面があるので、こういった証明問題もAPL/J言語で表記したい誘惑に駆られるのですが、むずかしいですね。そもそも証明問題ってトリッキーなところがあって、上記の証明も三角形ABCのCからABに垂線を下ろして証明しています。そのやりかただとAやBが鈍角の場合も考えなくてはならなくなって、証明はできているものの納得としてはだんだん本能的ではなくなってしまいます。そういうむずかしい状況の中での数学表記はどこに焦点を合わせるかで表…

三角関数

…ドできます。 これをAPL/J言語を片手に読んでみたいと思います。 まずは三角比から。直角三角形の絵があります。右下が直角で左下の角が鋭角(90度より小さい角)の直角三角形。 左下の角がθ(theta、シータ)となっています。 斜線が r 、底辺が x 、右側の縦の辺が y です。 このとき、( y / r ) 、( x / r )、( y / x )の値は三角形の大きさに関係なく、角θの大きさだけで決まる。 それぞれθの正弦(sine)、余弦(cosine)、正接(tang…

123て8進法でいくつ?

…める数です。 さて、APL/J言語では多項式をあつかうp.(ピードット)という便利な関数がありますが、係数の並べ方が次数の少ない順なので、今回の目的に合いません。そこで|.(たてぼうドット、トランスポーズ)という数列の順序を逆にする関数を用いて次のような関数を作れば今回の目的に合ったものになります。 pd=: |.@ [ p. ] 1 0 1 0 1 pd 2 21 1 0 1 0 1 pd 3 91 1 2 3 pd 8 83 これを使ってn進法のnが変化したときの変化を見…

isprime?

…ックするプログラムをAPL/J言語で作りたいと思いました。153は3で割れるので素数ではありませんが、157は多分素数です。 q:153 3 3 17 q:157 157 APL/J言語には素因数分解する関数q:(キューコロン)がありますので、わざわざ作るまでもないのですが、素数のリストを作って割ってみるとか、素数のリストに含まれているかをチェックするというのを考えたい。 p:i.15 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 APL/…

ふたつずつ

…つとってという部分をAPL/J言語では次のように書きます。 a=:+/\ +/\ i.15 a 0 1 4 10 20 35 56 84 120 165 220 286 364 455 560 NB. This is an example array 2 (-/\) a _1 _3 _6 _10 _15 _21 _28 _36 _45 _55 _66 _78 _91 _105 2 (-/\) 2 (-/\) a 2 3 4 5 6 7 8 9 10 11 12 13 14 2…

ダイアゴナル

…う意味らしいですが、APL/J言語に/.(スラッシュドット、ダイアゴナル)という副詞があります。直前の動詞に作用して、動詞をマトリックスの斜めに作用させます。 Math for the Layman by Kenneth Iversonに次のような例が載っていました。 diag=: /. c=: 1 2 1 d=: 1 3 3 1 t=: c */d t 1 3 3 1 2 6 6 2 1 3 3 1 sum diag t 1 5 10 10 5 1 (1 2 1)とか(1 …

の実験

はてなでAPL/J言語の記事を書くとき、数学ネタが多いのでJ言語のプログラムだけでなく数式をLaTexで書く機会が多いです。 Texの説明はネットにいろいろ懇切丁寧にあるので勉強の材料にはこと欠かないのですが、いざ書くときには苦労したりする。 さっきも(\in)の文字を書くのに、\include、とか \inside とか \contain とかやってみて、当たらなかった。 こうした試行錯誤を効率的にできないか。というアイデアです。 J言語や、Rubyは思いついたことをやるの…

係数(coefficient)

…う)とは何ですか? 足し算の繰り返しが掛け算であるのと同様に、掛け算の繰り返しが冪乗です。 冪乗は数式ではのように表されます。 ここで3を冪数と呼びます。 指数とか乗数とか言う場合もありますが、指数や乗数は別の意味がありますので、適切ではありません。 英語では冪乗はpowerと言い、冪数はexponentと言います。 APL/J言語を含むコンピュータ言語では、^(キャレット)を使うのが通常です。 cf.多項式(polynomial)、単項式(monomial)、項(term)

固有値問題(3)

…書いてありますので、APL/J言語で実行して同じ数字になるかどうか確かめます。(ちなみにExcelで固有値が求められるようなことが書いてあるサイトや本がたくさん出ていますが、わたしの知る限りではできないと思います。できるのだったらマイクロソフトが関数を作ってあるでしょう。自信はありませんが。) さて、表の見方です。 例えば費用と施設・環境を比べて、どちらかと言えば費用の方を重視する、というので(1,2)の欄に3が入っています。同様に交通の便と比べてかなり重視するので5、スタッ…

固有値問題(1)

…うのが出てきますが、APL/J言語でどうやって解くのだろうと思っていました。英語ではなぜかドイツ語みたいな単語でeigenvalueと呼ぶらしいのですが、英語でも日本語でも調べていてしっくりこないでいたところ、ネットで中野嘉弘先生のJAPLAのペーパーがみつかったので、それをなぞりながら勉強します。まず「はしがき」がわからないので飛ばします。統計分析(多変量解析)、線形代数、行列などが関係あるらしい。 課題: 連立方程式AX=λX解の条件はdet|A - λI|=0である。A…

離散数学

…まり聞きませんね。 APL/J言語でちょっと感心したのが、許容度(tolerance)という概念があって、3.0と3.000000000000000001というように極小の差異しかない場合、事前に差異の程度を定義しておいて、同じとみなすという考え方があります。また、演算を繰り返して収束する値がある場合、無限回繰り返したとみなすとうような考え方があります。これにより、工夫すると微分とか積分ができるようになる。なかなかヒューマンだと思います。 というわけで離散数学を勉強中です。 …

アッカーマン関数

…なく普通のようです。APL/J言語風に一行で書くのもあとで出てきますが、とりあえず今回の実験のためにはこれでOk。 あるレベルを超えると爆発的に再帰レベルが上がって計算量が増えますので、おそるおそるやってみます。 0 Ack 0 1 1 Ack 1 2 3 1 Ack"0 0 (1 2) 3 4 (i.4) Ack"0 0 table i.9 +-------+--------------------------------+ |Ack"0 0|0 1 2 3 4 5 6 7…

コードゴルフ(素数を数えて落ち着くんだ)

…(+/))c +--------------+---+ |53,67,47,37,71|275| +--------------+---+ >( (,','&,)&":/;":&(+/))c 53,67,47,37,71 275 うむ、すごいですね。 えっと、言いたいのは一見暗号のようなAPL/J言語ですが、こうして解析してみるととても明晰というか、やりたいこと、やる方法、結果が表現されていてとてもすばらしいということです。 pooqさんすばらしい例をありがとうございました。

ライフゲーム

…マトリックスで考えるAPL/J言語らしく、上下左右斜めにずらしたものと現状の9枚のマトリックスを足して、するとそれぞれのマスの周辺に生きているのがいくつあるかわかりますので、3のものを取り出します。あと、4のもので今現在生きているマスと重なるものもルールに合っていますのでそれを加えるというものです。 上のAPLで書かれたものはlifeという動詞を作っています。これに引数を与えるとω(オメガ)のところに入って、結果として、もとの引数のマトリックスの次の状態を返すものです。それに…

2^64はどれほど大きな数か?

APL/J言語の記事を読んでいて、「2^64はどれほど大きな数か?」というのがありました。 2^64 1.84467e19 2^64x 18446744073709551616 というような拡張数字(xつき整数)の話なのですが、なんで64乗なのかと考えると、チェス番が8x8で64マスなんですね。たしか有名な話で順番に倍の米つぶだか麦つぶを乗せていくと最後には地球を覆ってしまうほどの数になってしまうという話だったような。地球の表面積は、円周が4万キロメートルからどうすれば計算で…

重複のある順列

…ていましたが、これをAPL/J言語で考えてみましょう。3回だから全部数え上げても大した数ではない。6の3乗ですね。これを6個の中から3個選ぶ選び方の数と思うと間違い。重複を許すので、単純に6の3乗。 6^3 216 紙に書いて考えると、1 1 1から始まって、6 6 6ということが予想できます。216個配列を作って、それぞれを足して、9になるものの個数と10になるものの個数を数えればよい。 今、課題を、サイコロを3面として、2回投げて、合計が2になるものと3になるものの個数を…

演算の順序

APL/J言語では式は右から評価して行きます。これによって、いろんなことが簡単になっています。それはあちこちに書いてありますので、ここではひとまずおいて、演算の順序と言えば、逆ポーランド記法というのがありました。HP電卓などに入っていたもので、とても便利だったのですが、これが式をスタックに入れていって、演算子が現れると、スタック内の数字を消化しながら前に進むので、言ってみれば左から評価していくものでした。逆ポーランドと呼ばれるので、右左逆なら、ひょっとするとAPL/J言語はポ…