数学」カテゴリーアーカイブ

MEGA BIG1等が出るまで対象回の当選確率表を更新していく

ちょっと楽しくなってきたのでMEGA BIGの1等当選確率の推移(当選者が出ない確率など)をどんどん更新していってみたいと思います。今回から各回における1等当選確率も同時に表示するようにしています。まあ、グラフにするようなものでもないので表の形で出したいと思います。(12/01 更新)

回数 口数 不成立試合数 1等が出ない確率 (1等が出る確率)
1154 1,817,907 0 89.16% 10.84%
1158 964,243 0 94.25% 5.75%
1164 681,109 0 95.94% 4.06%
1165 738,106 0 95.60% 4.40%
1166 766,803 0 95.43% 4.57%
1167 979,506 0 94.16% 5.84%
1168 929,445 0 94.46% 5.54%
1169 1,288,401 0 92.32% 7.68%
1170 1,301,594 0 92.24% 7.76%
1172 1,277,528 0 92.39% 7.61%
1174 1,364,647 1 67.46% 32.54%
1175 943,168 0 94.38% 5.62%
1176 1,228,281 0 92.68% 7.32%
1178 1,514,454 0 90.97% 9.03%
1180 1,460,009 1 65.19% 34.81%
1181 962,565 0 94.26% 5.74%
1182 1,149,320 0 93.15% 6.85%
1183 2,402,965 0 85.68% 14.32%
1185 2,531,145 0 84.91% 15.09%
1187 2,508,561 0 85.05% 14.95%
1187 2,508,561 0 85.05% 14.95%
1189 2,139,020 0 88.03% 11.97%
1191 1,994,678 0 88.79% 11.21%
1192 1,255,264 0 92.79% 7.21%
1193 1,569,095 0 91.07% 8.93%
1195 1,925,928 0 89.15% 10.85%
1196 1,289,770 0 92.60% 7.40%
1197 1,426,875 0 91.85% 8.15%
1199 1,819,687 0 89.72% 10.28%
1200 2,062,545 0 88.43% 11.57%
1202 2,242,597 0 87.49% 12.51%
1203 1,152,172 0 93.36% 6.64%
1204 1,458,163 0 91.68% 8.32%
1206 2,094,547 0 88.26% 11.74%
1207 1,244,458 0 92.85% 7.15%
1208 1,502,001 0 91.44% 8.56%

なお、次の回に1等が出ない確率に今までの出ない確率などは一切関係しません。これはくじの結果はそれぞれの回での独立試行と考えられるためです。なので、口数の変化はそこまでないでしょうから、次回も1等が出る確率は良くても20%位になるのでは?と推察されます。ちなみに確率論で間違えないで欲しいことは当選者が出ない状態が積み重なったからと言って次回当選者が出やすくなるわけではない、ということ。まあ、キャリーオーバーと確率を考えると次回当選者が出ればほぼ確実に12億円だということくらいですし、完全に確率論だけでこの手の当選状態が支配できるようなものでない可能性もごく微少にはある可能性もない訳ではない…のか?

ちなみに、宝くじの場合は各ユニットで一通りの番号が用意されているので1ユニットすべてが完売しているならば1等は100%出現します。これは乱数による番号作成をしているくじだと全通りと同じ口数購入されていたとしても1等が出る確率は1-(1/e)=約63.2%となるBIG系とは大違いな点ですね。買っている側から見れば余り変わらないのですが…。

参考までにMEGA BIGが今までに1回も1等当選者が出ない確率は計算すると12/01時点で約1.856%となります。とうとう2%を切ってしまいました。確率的(+賞金的)には全然及ばないのですが、この調子で当たらない状態が続いていくとなるとアメリカの宝くじであるパワーボールを連想してしまいます。もう一つ考えてしまうことはコンピュータランダムを使うことによる「現れないパターン」というのがあるのでは?ということ。できれば自分がいいですが、とりあえず早く当たりを見てみたいという今日この頃です。

MEGA BIGに1等が全く出ていないのは不自然なのか?その確率は?

ということで、またもや確率ネタです。今回もおそらく数Aレベルで分かる話になっています。単純にこの記事を書いている8月末現在でMEGA BIGは一回も1等が出ていません。一応当たれば12億円となるだけのキャリーオーバーがたまっていますが…。この記事を書いている今週末には台風が来る予想になっていると言うことで、もしかすると試合が中止になって確率が上がり、当選者が出るかもしれませんので書いています。それが自分だとうれしいのですが…。

まあ、それはさておき。これを確率的に追いかけてみるとMEGA BIGの確率がBIGなどに比べるとかなりやばいということが分かる、という話です。抽選方法が出た時点から「最低でもキャリーオーバーがたまって12億円の払い戻しができるようになるまで行かないと割に合わない」とは言われていました。そして人によっては機械のランダムに何かあるのでは?と疑いたくなる人もいるかもしれませんが、これを数学的に解いていきます。

 

結論としては「十分にあり得る状態」であるといえそう

計算結果は8月末の状態で約16.5%の確率で「ここまで1等が一つも出ない」と出ています。16.5%といえば1/8より大きいですのでそれなりにあり、というところでしょうか。個人的にはもっと低い状態、だいたい10%を切るくらいのところで、「珍しいくらい」と書きたかったのですが…。ちなみに厳密にしたいのであれば検定を行うべきなのでしょうがそれは省略しています。この時点で確率として極端に低いわけではないですので。

 

くじの確率の前提知識

一般的な「偏りのない場合」で単純に当たりか外れかを考えるだけのくじについて考えます。くじのパターンがn通りで当たりがh通りとする場合、

1本引いてそれが当たりの確率:h/n

1本引いてそれが外れの確率:1-(h/n) [余事象の確率]

くじを確認したら戻す(復元抽出)とき、m本引いてすべて外れの確率:(1-(h/n))^m [反復試行の確率]

これと「独立な試行において2つの事象が同時に起こる確率はそれぞれの確率の積になる」を使うと今回目的の確率を出すことができます。

 

問題はMEGA BIGの確率が小さすぎる点

通常のMEGA BIGにおいて、くじのパターンは4^12通りとなるので、計算すると16777216通りとなります。BIGの3^14通り=4782969通りに対して約3.5倍という状態となり、かなり厳しい確率になっています。確率の減少度合いと1等金額の上昇が微妙に釣り合っていないんですよね…。なので「キャリーオーバーがたまるまで割に合わない」となるわけですが。これに追加してBIGより購入口数が少ないことも響いて、こんな感じの表ができあがります。

 

確率計算をしてみると…

こんな感じの表になります。

回数 総口数 欠試合数 パターン数 1等なし確率
1154 1817907 0 16777216 89.73%
1158 964243 0 16777216 94.41%
1164 681109 0 16777216 96.02%
1165 738106 0 16777216 95.70%
1166 766803 0 16777216 95.53%
1167 979506 0 16777216 94.33%
1168 929445 0 16777216 94.61%
1169 1288401 0 16777216 92.61%
1170 1301594 0 16777216 92.54%
1172 1277528 0 16777216 92.67%
1174 1364647 1 4194304 72.23%
1175 943168 0 16777216 94.53%
1176 1228281 0 16777216 92.94%
1178 1514454 0 16777216 91.37%
1180 1460009 1 4194304 70.60%
1181 962565 0 16777216 94.42%
1182 1149320 0 16777216 93.38%
1183 2402965 0 16777216 86.66%
連続1等不当選確率 16.49%

口数については公式発表のページより持ってきています。計算はExcel任せですが、一応関数電卓でも計算させてありますので数字に間違いはないと思います。あと、一部の回で試合が中心になった影響でくじのパターン数が減少したものがあるのでそれも加味しています。(詳しくは前のページを参照)

そうだとしても、1等が出ない確率が各回単体で見るとでかなり高いのが分かります。総口数が(パターン数に対して)少ないため、BIGのように毎回出るか?出ないか?という感じにならないわけですね。試合が中止になればちょっとましになりますが、それでも70%以上の確率で1等はでない、という状態になっているようです。これだとくじのパターンを決めるアルゴリズムは公平だとしても、当選が出るのはそれなりに珍しい、という結論に至るかと思います。

まあ、口数を公式発表から持ってこなくてもここまでのキャリーオーバーの金額およびそれぞれの分配率から大体の確率は計算可能です。試合の中止による確率上昇は加味できませんが。

 

早く1等を見てみたい…

さすがにここまで1等当選が出ないのは予定外なのかもしれません。CMもそれなりに打ち始めているようですし、その影響で最新回は今までの中で総口数が最も多くなっているため、1等が出ない確率は多少下がっています。これくらいの口数があり、かつ1試合中止になれば当たりも見込めるのではないでしょうか。という希望的な観測を書いて終わりにしたいと思います。

 

BIGの一等当選確率はどれくらい試合中止になると二等レベルになるのか?を計算してみよう

ということで、ちょっとした数学ネタになります。試合が中止になりやすい今だからこそ少し考えてみたい話題です。

 

前知識:BIGやMEGA BIGの一等の確率について

確率を考えるときにはBIGやMEGA BIGがどのようなくじか確認する必要があります。確認すると

  • BIG:特定の14試合について勝ち・引き分け・負けをコンピュータがランダムに選ぶ
  • MEGA BIG:特定の12試合について総得点を4パターンで表し、それをコンピュータがランダムに選ぶ

というものです。ということで、それぞれ一等の確率を考えると、すべて当たったときが一等なので

  • BIG:1/(314)=1/4,782,969
  • MEGA BIG:1/(412)=1/16,777,216

となります。この確率の計算はそれぞれ3通り(BIG)or4通り(MEGA BIG)の試合結果がそれぞれあり、その試合が14試合(BIG)or12試合(MEGA BIG)なので、積の法則からこれが成り立ちます。試合の結果はそれぞれ独立なのでこれでOKですね。ちなみにこれを見てもらうとわかるとおり、確率的にはMEGA BIGの一等はBIGの一等の1/3以下の確率になっています。なので当選金額としては大分不利ではないでしょうか。

 

では二等の確率はどう計算される?

次は二等です。二等は「いずれか一試合の結果が外れていた場合」となります。今回の確率の計算で注意が必要なのが「いずれか」の言葉。どの試合の結果が外れていてもよいので、考えられるパターン数は「外れの試合の結果のパターン数×全試合数」となります。つまり、

  • BIG:パターン数は(3-1)×14=28通り。よって確率は28/314となり、約170,820分の1になる
  • MEGA BIG:パターン数は(4-1)×12=36通り。よって確率は36/412となり、約466,034分の1になる

という結果になります。LOTO6やLOTO7に比べると一等と二等の確率にだいぶ開きがあることがわかるでしょうか。

 

試合が中止になった場合はどうなる?

試合が中止になった場合は「その試合はどのパターンでも当たりとする」となります。ちょっと言い換えると「ある特定の試合だけ外れていてもよい」となります。注意が必要なのが「特定の試合だけ」というもの。いずれか、ではないので1試合の場合一等のパターン数は「1試合のパターン数」しか増えません。複数の試合になると積の法則から「(一試合のパターン数)(中止になった試合数)」が一等のパターン数となります。例えば1試合ならば

  • BIG:1試合のパターン数は3なので、確率は3/314=1/313=1/1,594,323となる。
  • MEGA BIG:1試合のパターン数は4なので、確率は4/412=1/411=1/4,194,304となる。

ということで、確かに確率は上昇していますが、二等レベルまでは増えていません。もし二等レベルまで来るとしたらそれは二等のパターン数と見比べると

  • BIG:3試合の場合のパターン数が33=27通りなので、3試合中止くらいで通常時の二等くらいの確率
  • MEGA BIG:2試合の場合のパターン数が42=16、3試合の場合のパターン数が43=64なので、2試合中止ではまだ足りないが3試合中止まで行けば十分

となります。ちなみに確率を比べてみると通常のBIG1等の確率と1試合中止でのMEGA BIG1等の確率が(大雑把ですが)やっと同じくらいになります。このことから1試合中止が確定している場合で十分にキャリーオーバーがあり、BIGのキャリーオーバーが少ないならMEGA BIGを買う、という選択肢もなくはない、という結論に至ります。あまり勧められませんが。

 

結局一等を当てやすいのは試合中止が決まっているときの100円BIGという話に

○億円レベルの当たりが期待でき、という条件だとこうなるのではないか、と思います。口数が稼げるので確率も(多少ですが)増えますので。まあ、コロナウイルスの影響で全試合中止など4月のような状態になればそうも行っていられなくなるのでしょうが…。ちょっとした考察でした。

 

「1.1の8乗は2より大きい」を何パターンで示せるか?

というわけで数学遊びです。範囲としては数Ⅰ+数Aの知識でいけるのでそのあたりのテスト問題とかに出そうだな~ということでやってみています。証明が面倒になるものも含まれていますので気になる高校生の人は見てみるとよいと思います。なお、この記事を書く前にどうせならWindowModePatchの記事とかサーバーの更新の記事とかを入れておけば面白かったかな~と思わなくもないのですが、Twitterに書いたのでこちらを先にしました。

 

正式な問題はこの形

Twitterにもつぶやきましたが問題を解く前に意図を確認するために書いてみます。

Q. 1.1の8乗は2より大きいことを示せ。ただし直接計算を行う場合は正確に行うこと。また累乗の数の大小関係は証明されていないものとする。

実は問題が微妙にいやらしいのが面白いところ。これが例えば「1.001の750乗は2より大きいことを示せ。」という問題であれば解法は限定されるのですが手計算できるところに押さえられているのがミソです。そのために「直接計算を行う場合」の注意書きを入れてあるわけです。そして最後の意味は「概算の形で計算したいなら累乗の大小関係について証明した上でやりなさい」という意味をいっています。この部分は解答を見た方が意味がわかると思います。

ちなみにこの問題の形は自然対数の極限を考える段階で現れる問題の変化系となっていいます。そのため、その部分に入る前に宿題として出しておいて…ということも考えられる問題という意味も含まれています。

 

私が考えた解答は以下の3パターン

一つずつ紹介していきます。

直接計算パターン

A1. 値を直接計算して求める。

ちょっと面白いのが4乗までであればパスカルの三角形を考えればよいので何も考えなくても計算できるけれども5乗以上となると手計算では難しくなるところですね。これを考えた人は最後まで間違わずにできたでしょうか。(「直接計算を行う場合は正確に行うこと」に注意)

 

間接計算パターン

概算の形で計算するものです。問題文より累乗の数に対しての大小関係を証明した上で行います。

A2. 累乗の数に対する大小関係として以下の命題を証明する

Th2. となるa,bと自然数nに対して

Pr2. 数学的帰納法を用いる。

n=1のときはa>bとなり仮定より満たされる。を仮定すると

よりとなり

よって数学的帰納法より題意は示された。

 

A2.1 1.12 = 1.21 よって 1.18 > 1.24, 1.22 = 1.44 よって 1.18 > 1.422, 1.422 = 2.0164 よって 1.18 > 2.0164 > 2

A2.2 √2 = 1.41… よって 2 < 1.422, √1.42 = 1.19… よって 2 < 1.204, √1.20 = 1.09… よって 2 < 1.18

A2.3 1.14 = 1.4641 √2=1.41… よって (1.14)2 >(√2)2 よって 1.18 > 2

大小関係の証明がないと不等号の部分が正しいという根拠を失ってしまうわけですね。そのため証明が先に必要になります。証明の部分は今回の問題で必要となる範囲でのみ証明がされていればOKなので指数の部分が自然数のみとなっていたりしています。あとは問題の状態が満たされるように概算を行っていけばいいわけですね。このときに8が23ということをうまく使っていくのが美しいところでしょうか。なお根号に関する計算はテスト問題で処理する場合のために開平方で計算しているという仮定です。そのため有効桁は3桁が確定すれば次に進む、という手順で行います。

 

二項定理パターン

高校生レベルならこれを使って示してほしい、という意味の問題でした。解答はこちら。

A3. 二項定理を用いると

よってx=0.1,n=8を代入すると0以上8以下の整数kにおいてであり、

こちらの場合は数列の極限とかいろいろなことを考える前段階の証明として一度はやっておいた方がよいと思われるものです。似たような証明であればテスト問題や入試問題にも出るかもしれませんね。ということをわざわざ国立大学の前期日程の試験が終わった後で書かなくても…

 

数学を使って考えることができたでしょうか

今回は大きく分けて3パターン(間接的な方法ではさらに3つ)で示してみましたがほかに考えついた人はこの記事のコメントにでも返していただけるとありがたいです。なお、二項定理パターンはほかにも理科系(主に物理)科目の計算で1より微妙に大きい数や小さい数を近似するときに使うパターンでもあるので知っておいて損はありません。

…で、こういう問題を考えていると思うことは直接計算しなくても示すことができる問題というのはいろいろとある、ということです。現実世界でも直接答えを示せなくても間接的に示したりする例もあることですので知っておくとよいことがあるかもしれませんね。

 

Windows10でSage(SageMath)を使う (Bash on Ubuntu on Windows編)

いろいろと試していた結果やっと環境が固まってうまく動くようになったのでその記録として記事を書いてみたいと思います。以降の自分もいろいろな用途でSageを使うことになると思いますし、それ以外の人でこれを使って何かする人(後で解説)もかなり有用だと思います。

 

Sage(SageMath)とは

公式サイトを読んで見るなりWikipediaを調べるなりすればよいと思いますが数学の幅広い処理を扱うソフトウェアで計算機代数などを使用することができます。今現在の主な用途としては数値計算や計算機代数など計算機を使う数学において研究目的で使用されます。この場合ですと数学系の課題研究で担当の教授から紹介されたり代数学の論文でこのような計算方法で行います、という場合にSageのコマンドで紹介されていることがあり以降自分の研究を進めていく上で必要となることが多いようです。

もう一つ面白い使い方としては線形代数や数式処理も行うことができるため高校レベルまでのちょっと複雑な数式について数学の先生が答えから逆算して問題を作成したり、テスト問題を考えたときに解答が正しいかどうかをチェックしたり…という用途に使用できるのではないかと考えています。逆に考えると高校生が横着して数学の宿題についてSageで出した解答をそのまま持って行く、なんてことも考えそうな気もしています。高校生が使うのであれば途中式を書いて計算はしてみたけれど答えを提出する前に確認したい、という用途では使ってよいのでは?と考えていますがどうなのでしょうね。

なお、現在の正式な名称はSageMathと呼ぶようです。インストールするパッケージもsagemathという名前で書かれているようですので気をつけていきましょう。

 

Bash on Ubuntu on Windowsの環境を整備する

Windows10において2016年8月に公開されたAnniversary Updateですが、これの大きな更新の一つとしてBashをWindows環境で利用できるようになった、というものがあります。BashはLinux環境における代表的なシェル(この場合はOSとユーザーをつなぐ役割ととればよい)で、これのおかげで一部のLinuxのプログラムを余計な変換なしにWindows上で扱うことができるようになりました。昔からLinuxとWindowsを併用してきたユーザーから見ればかなりうれしい更新です。今回はこれを使うことにします。

Bash on Ubuntu on Windowsの環境を整備するのはいろいろなサイトで紹介されているので詳しい点はそちらに譲るとして簡単に説明すると作業は以下になります。

  1. 画面左下にあるWindowsのロゴを右クリックしてメニューより[コントロールパネル]を選択。[プログラム]=>[Windowsの機能の有効化または無効化]より[Windows Subsystem for Linux (Beta)]にチェックをして有効化する。(更新により再起動が必要になることもあり)
  2. 設定の[更新とセキュリティ]から[開発者向け]を選択してアプリの受け入れに関して[開発者モード]を選択する。
  3. 画面左下にあるWindowsのロゴを右クリックしてメニューより[コマンドプロンプト]を選択。プロンプト上で
     > bash 

    (先頭の>はプロンプト状態を表すもので実際には入力しない)と入力する。以下開発者のみの機能であることに同意した後Bash上のユーザー名、パスワードを入力して環境構築が行われる。

インストールにはしばらく時間がかかりますのでのんびり待ちましょう。環境の構築が完了するとスタートメニューにBash on Ubuntu on Windowsのショートカットが作成され、そのショートカットで起動すると上記のユーザーでログインした環境から処理が始まる、という状態になります。

ちなみにBash on Ubuntu on WindowsのインストールによってBash上で動くプログラムをgccなどのコンパイラによって作成することもできるのでC言語での簡単なプログラムも作ることができます。こういう目的で環境を構築するのもありかもしれません。

ただし、Bash on Ubuntu on Windowsの環境はWindows本体とは異なり自動では更新されません。そのため環境を構築していろいろなことをやるのであれば定期的にアップデートを確認して環境を更新していく必要が出てきます。環境の更新はインターネットへの接続が確保できている状態で

 $ sudo apt-get update 

というコマンド($はターミナル状態を示すもので実際には入力しない)で行います。また、この環境内ではマシン名の名前解決ということでsudoを使う場合などで変な警告を表示されることがあるので/etc/hostsに自分のマシン名(起動直後の表示では[(ユーザー名)@(マシン名):~$]となっているのでそれを目安に)をviなどで先頭行の127.0.0.1の後ろに書き加えてしまいましょう。

以降はBash on Ubuntu on Windowsを起動した場合はその窓のターミナルはUbuntuのコマンドラインだと思って作業することがある程度可能です。すべてのソフトウェアがあるわけではないのでapt-getで取得できないものはコンパイルがうまくできればなんとかなるかも、というレベルです。そのあたりは自己責任で。

 

XmingでGUIウィンドウが使えるようにする

SageMath本体には直接影響はしないのですがこれが使えるとグラフなどを見せるときに非常に楽になります。特にSageのコマンドライン上から描画命令を発行したときにXmingが正常に動いていればxdg-openコマンドを経由して(内部の関連付けにもよりますが)ImageMagickが呼び出されて最終的にXmingにより画面上にウィンドウが表示されます。これがないとSageからの画像表示を行いたい場合に一度ファイルへ出力した後それをWindows領域から見やすい場所にコピーして画像ビューワを使う、という手順となりかなり面倒になります。ちなみにこれを入れておけばgnuplotも表示できるのでその意味でも数学の授業で扱うことを考えたり…ということもあります。

 

インストールの手順としてはBash on Ubuntu on Windows + XmingによるGUI – Qiitaが詳しいのでそちらを見てもらえばよいですが、簡単に手順を書くと

  1. 公式サイトよりXming-6-9-0-31-setup.exeとXming-fonts-7-7-0-10-setup.exe(記事を書いている時点)をダウンロードしインストール
  2. Xmingを起動する。以下一度シャットダウン処理やXmingを終了させてしまった場合は表示させる処理の前にXmingを起動させること。
  3. 環境変数DISPLAYにXmingのサーバー値を設定する。通常は0.0なので
     $ export DISPLAY=localhost:0.0 

    というコマンドを実行する。必要であれば.bashrcの終端にこの命令を記述しておくと状態が登録されるので楽になる。なお、.bashrcに登録されている場合はウィンドウを開いた後でXmingを起動させてもうまく表示されることがある。サーバー値が間違っていれば失敗するのでそこには注意すること。

となります。ちなみに参考にしたページではxeyesを使ったチェックをやっていますがこちらの場合はこの後SageMathをインストールしてチェックするのでそのタイミングでやってもよいと思います。(うまく表示されない場合の切り分けのために先にテストしてもよい)また、LXDEとVNCを併用してGUI環境を作り出す方法もありますが今回そこまでする必要はないと思いますのでこういう方法を使っていきます。

 

SageMathをインストール

SageMathの場合は本体がPythonで記述されているため今回の場合はほとんどの機能をインストールすることができます。ただ、Ubuntuの公式サイトからパッケージを取得する方法ですとうまくいかない場合があるのでリポジトリから作業を行います。こちらは以下のコマンドを実行することでインストールすることができます。

$ sudo apt-add-repository ppa:aims/sagemath
$ sudo apt-get update
$ sudo apt-get install sagemath-upstream-binary

注意点としては容量がかなり大きい(5GB前後ある)のでWindowsの本体ドライブにそれだけの空き容量が必要であること、またかなりのサイズのデータをダウンロードするため時間がかかることです。数時間くらいかかることもありますので気長に待ちましょう。

 

SageMathの初期環境を構築する

インストールが完了すればSageMathを起動させて初期環境を構築します。といっても一度目の起動の場合は勝手に環境を構築してくれるのでそれを待つだけです。つまり、

$ sage

と入力すればOKです。なお、完全なLinux上で動作している訳ではないためSageMathを起動させるたびにRuntimeWarningが出てしまいますがそれは無視しても問題ないと思います。

 

SageMathの画像表示チェック

最後に画像が表示されるかどうかを確認して完了です。適当にグラフをplotしてみればよいわけですが、わかりやすくcircle命令を使います。例えば

 sage> circle((0,0),1)

としてグラフとして中心(0,0)、半径1の円が描かれたグラフが表示されるかどうかを確認します。デフォルトであればおそらくImageMagickが起動してXming経由で画像ファイルを表示します。コマンド実行後しばらくたっても画像が表示されないときはターミナル(SageおよびBash)をいったん終了させて再度起動させてみてください。それでもうまくいかないときはWindows本体を再起動させてXmingを起動させた上でSageMathを起動させて確認してみてください。ここまでやってうまくいかないときはXmingの表示テストにより単体で動作することを確認する必要があると思います。もしかするとeogをインストールしておく必要があるかもしれませんが…。

 

SageMathで数学Ⅰや数学Ⅱにありそうな問題を解いてみる

ここからは遊びです。例えば代数学の問題(数と式など)をやってみます。

Q1. を因数分解せよ。

A1. SageMathで以下のように入力して答えを得る。

sage> a,b,c=var('a b c')
sage> y=a*(b^2+c^2)+b*(c^2+a^2)+c*(a^2+b^2)+2*a*b*c
sage> factor(y)
(a + b)*(a + c)*(b + c)

よって解答は(ちょっと並び替えを行うと)

Q2. を計算せよ。

A2. SageMathで以下のように入力して答えを得る。

sage> y=sqrt(3)/(sqrt(3)-sqrt(2))-sqrt(3)/(sqrt(3)+sqrt(2))
sage> y.simplify_full()
2*sqrt(3)*sqrt(2)

よって解答は(根号の数を整理して)

Q3. 方程式を解け。

A3. SageMathで以下のように入力して答えを得る。

sage> y=x^4+x^3+2^x-4
sage> solve(y,x)
[x == 1, x == -2, x == -I*sqrt(2), x == I*sqrt(2)]

よって解答は(iを虚数単位として)

見事に途中式を無視して解答だけ出してしまったパターンとなってしまいました。これで数学の宿題として先生に提出したらほぼ確実にやり直しですね…。なお、記事を書いているときに書いている当の本人が本当にこんなことができるのだ、と妙な感動を起こして笑ってしまったのはおいておきましょう。

上記では問題を解く方向でやりましたが問題を構築するとき(例えば因数で表された状態の式を展開して問題にする)もexpandなどでかなりうまくできます。なお、根号の状態など一部の処理は(A2のように)必ずしも簡単になるとは限りませんので解答が出た後で整理するなどが必要だったりそもそもその式をうまく表現できない場合がありますのでそこまで期待しない方がよいでしょう。もちろん研究にSageMathを使う場合は普通に必要な処理を使っていってください。