このブログを検索

ラベル 数学 の投稿を表示しています。 すべての投稿を表示
ラベル 数学 の投稿を表示しています。 すべての投稿を表示

2023/05/15

約分その2

さっきの約分の問題はyoutubeで見かけたものなのだが、その動画では私がやったようなやり方で解くのではなかった。

3007/1067 であれば、2つの数の差を求める。

1940。

この数を素因数分解する。

2で割れる。970。また2で割れる。485。

4で割れるのか。485。

5で割れる。97。

1940=4x5x97


3007も、1067も、97で割れる。

つまり、公約数である。


2つの数の差の約数がなぜ元の数の約数になるのか。

直感的にはピンとこない。


約分、素因数分解、素数判定

約分、素因数分解、素数判定

この3つは実質同じことをする。

ある数について、約数があるかどうかを確かめる。


たとえば、「3007/1067 という分数を約分しなさい」という問題。

パっとみ、割れる数が思いつかない。2, 3, 5あたりはダメ。


すぐにできる約数を見つける方法は、

末尾が偶数... 2

各桁の数を足すと3の倍数... 3

末尾が5か0... 5


そして、2桁だったら素数は列挙してもそんなに時間はかからない。

2, 3, 5, 7, 11, 13, 17, 19, 23, 

くらいまではすぐ出る。


29, 31, 37, 41, 43, 47, 53, 

この辺から怪しくなってくるか


でも2桁だったら、「素数を列挙してその中にあるか」ではなく、

いくつかの数で割ってみればわかる。1分もかからないだろう。


また、桁数は10桁とか20桁とか、「どんな桁数であっても使える素数判定法」を見つけようというのでもない。


まあ、4、5桁くらい。


先ほど例にあげた、3007, 1067 といったような数字で使える、そんなに厳密でなくてもいい方法。


この例では、2つの数字がともに末尾が7となっている。

もしこれらの数字に約数があるならば、2つの数値をかけて結果の末尾(1の位)が7になる数字、ということである。


それはどういう数かと考えて、まず思ったのは、「末尾が7である数と、末尾が1である数の積」である。そして、これだけだと思った。

しかし、それだけではなく、3x9=27 でもある。


ただ、これだけわかればだいぶ楽だ。

3007について。

2, 3, 5 では割れないことはわかっている。

7は、微妙だが割ってみればすぐわかる。割れない。

8, 9, 10 はそれぞれその約数で割れないのですでに対象外。

2桁になっていく。


4桁の数で、「約分しなさい」という問題だから、おそらく2桁x2桁になるのだろう。

候補は下1桁が1, 3, 7, 9

これくらいなら順番に割ってもよさそうだが、

目的はこの問題を解くことではなく簡易的でもいいから判定法を見つけることなので、

もう少し考える。


3007という数の大きさ。


3000は、10x300, 15x200, 30x100 などである。(ほかにもあるが、たとえば。)

ここに登場する、10, 15, 30, 100, 200, 300 などをいじって、

先ほど候補として絞った「下一桁が1と7、あるいは3と9」にしたらどうだろうか?

10x300→ 11x299, 13x299, 17x291

15x200→13x209, 17x191, 19x193

30x100→31x97, 33x99, 29x93


適当にやっただけなので、ざっと見ると

13x209, 29x93は3000に満たないので除外


11x299, 13x299, 17x291

17x191, 19x193

31x97, 33x99


13x299は明らかに大きい

19x193も大きい

33x99も大きい


11x299, 17x291

17x191, 31x97,


おっと、末尾が7にならないのが混じっていた。

17x291, 17x191, 31x97,


17x291=17x(300-9)=5100-153

17x191=17x(200-9)=3400-153

31x97=31x(100-3)=3100-93=3007 ... これ!



1067は...

同様にやってもいいのだが

すでに3007=31x97が判明しているので

どっちかで割れるであろう。


31x37かな

(30+1)x37 ... 違う

31x27=(30+1)x27=810+27... 違う


97x11は...

(100-3)x11=1100-33=1067... これ!


ちなみに1067の方を先にやった場合の候補は


1067だと、1000との差がやや大きい。

1000=10x100, 20x50, 500x2, 330x3+α, 250x4


で、末尾が7になるから

11x97, 21x47, 

500x2, 330x3, 250x4は除外


もう答えを知ってるから 11x97がすぐ出てきちゃったけど...




2020/07/22

順列と組み合わせ

Permutationは「順列」、Combinationは「組み合わせ」と訳される。

教科書では、

「a,b,c,dの4個の文字の中から、異なる3個をとって1列に並べる」
「7人の生徒から3人を選んで1列に並べる」
「男子3人、女子2人が1列に並ぶとき女子2人が隣り合うような並び方は何通りあるか」
「5人を、2つの部屋A, Bに入れる方法は何通りあるか、ただし、一人も入らない部屋があってもよいものとする」

「12色の鉛筆から5色の色鉛筆を選ぶ方法」
「正六角形の6個の頂点のうちの3個を頂点とする三角形の個数」
「男子10人、女子6人の中から、5人を選ぶとき、(1)男子3人と女子2人を選ぶ(2)男子が少なくとも1人含まれる 選び方はそれぞれ何通りか」

などという例が使われている。

これらについて、permutation, combination,和の法則、積の法則を使って計算する方法が説明される。

私は授業でそれをぼーっと聞きながら、『しらみつぶしに数えなくても、数えきれないような場合でも、こうやって計算できて便利なんだな』と思いながらも、『どんな時にこんな計算が必要になるのだろう』という疑問というか、無力感に苛まれて、真面目に勉強する気にならなかった。

それは順列組み合わせだけでなく、ベクトル、三角関数、指数関数、対数関数、数列、微分積分すべてに言えることである。

高校生になると数学はどんどん複雑になり、直観やしらみつぶしが通用しなくなってくる。


今、「ワンペア問題」を考えていて、PermutationとCombinationについてあらためて考えなおしている。

「a,b,c の3つの文字から2つを選んで並べる組み合わせはいくつあるか」

a,b
a,c
b,c

3つ。

では、a,b,c,dの4つから2つだったら?

a,b
a,c
a,d
b,c
b,d
c,d

6つ。

高校生だった私は、この手のことを考える必要性に悩まされた。

当時は単なる怠け心だとしか思わず、勉強とは、生きるとは、成長するとはそういう疑問を持たないことだと言い聞かせるものの、結局それに打ち勝てなかった。

そのころに、「人間が生きる目的は何か」ということを考えるようになったのも、哲学に興味を持ち始めたのも、無意味に思えることを考える必要性がわからなかったからなのだと、今になってみるとわかる。

「数学なんか生活に必要ない」なんて言うと、いかにもバカで怠惰なろくでもない奴のようで、私自身もそういう考えは嫌いで、勉強とは学問とは生活に必要だからするようなものではないと思ってはいたが、果たして必死に「勉強」している級友たちがそんな高尚なことを考えていたとは思えない。

むしろ彼らはそんなことを考えもせず、勉強というのは受験であり受験とは生存競争であり椅子取りゲームであると割り切って、四の五の言わずに定番問題集を解いて過去問を解きまくって、パターンを覚えて、どんな難しい問題もすべて何かのパターンにあてはめれば解ける、という生き方を選んでいただけではなかったのか。

その証拠に彼らは、授業でキェルケゴールやカントやベーコンが出てきても、国語の教科書に舞姫や伊勢物語や源氏物語や史記や論語が載っていても、その本の一部が載っているだけなのに、それらに興味を示さず、「こんなの試験に出ない」と言って、授業を聞きながら受験用の参考書の問題集を解いたりしていた。

わたしが「a, b, c をならべる組み合わせはいくつあるか」ということに興味を示さないことと、彼らが「絶望とは死に至る病である」ということに興味を示さないことにどんな違いがあるのか。どちらが怠惰だったのか。

2018/10/20

利用率と待ち時間

サービスの利用率がaだった場合、サービスを待つ人数は a/(1-a)となる。

具体的に数値を入れてみると、

a=0.1の場合

0.1/0.9 = 1/9 ≒ 0.11


a=0.3の場合

0.3/0.7 ≒ 0.43


a=0.5の場合

0.5/0.5 = 1


a=0.8の場合

0.8/0.2 = 4


a=0.95の場合

0.95/0.05 = 19



a=1 にするとゼロ除算になってしまう。
aを限りなく1に近づけていくと、(1-a)は限りなくゼロに近づき、
a(1-a)は無限大になる。


ρ(1-ρ)を 待ち人数とすると、

稼働率50%のとき一人となる。

それより低いときは1未満であるが、人数は整数である。

では、0.5人の待ち人数というのはどういうことか。

稼働率が33%くらいのときに待ち人数が0.5になる。

24時間営業のコンビニでサービス稼働率33%だとすると、
その日に10回店にいったら2回に1回は一人待っている、という感じか。




稼働率0.01から0.96までのグラフ
待ち人数が5を超えるあたりから急上昇する。
0.83%あたり










計算問題

ネスペには「計算問題」というのがある。

最近は「計算」ということをほとんどしない。

エクセルを使うからだ。

するのはコンビニで買い物をするときくらい。

それすらも、最近はクイックペイなどを使うようになりすることが減ってきた。


午前の問題に計算問題があるのだが、過去問をやってみたらほぼ100%わからない。

「xxバイトの電文をxxxビット/秒で転送したときの送信時間」

など。

アーランとか、ポアソンとか、見ただけで拒否反応が出る。

しかし、回答方法を見てみると、ごく簡単な計算しかしていない。

足し算引き算掛け算割り算だけだ。


「1/100秒は何ミリ秒か」を1ミリ秒だと間違えたりする。

「2÷1.1」をひっ算でやってみるとアレ?となったりする。

「1000÷109」をひっ算でやる途中で

「1000-981」という計算が出てくるが、暗算すればすぐ19と出てくるが、

ひっ算で

1000
  981

とやって1の位から引いて行って繰り下がる場合に10を借りてくるのか9を借りてくるのか戸惑ったりする。


バイトとビットを合わせなかったり、そんなミスばかりだ。


「100人が共通鍵で通信するときに必要な鍵数の合計」

これは、100人をフルメッシュにしたときのノード間の接続数を求めることであり、
ノード数をnとすると

接続数=n(n-1)/2

である。

1台の装置が常に利用中である場合、1アーランのトラヒックが発生している、という。

1日に1時間だけ利用されているなら 1/24 アーランである。

そのような装置が2台あれば、2 x 1/24 = 1/12 アーランである。



プリンタの利用率が25%である場合、待ち人数は

0.25 / (1-0.25) = 0.25 / 0.75 = 1/3 である。

この 

ρ/(1-ρ)

については「なぜそうなのか」と疑問を持つことは大切だが
これくらいの簡単な式なら試験のためなので覚えてしまえる。

そして

待ち時間 = 待ち人数 x 一人当たりのサービス時間 である。

これは覚えるまでもない自明のことだ。


この程度である。