時々日記書かないと・・・
時々日記書かないと・・
知らないうちに広告のリンクが出ている・・・??
集合の基数(濃度)について
直前のエントリで「写像と単射と全射と全単射について - IIJIMASの日記」写像と特別な写像について説明しました。
特に、全単射(1対1対応)の存在は強力な性質で、AとBの間に1つでも全単射が存在すると有限集合の場合要素数が同じということがわかってしまいます。
無限集合で要素数を考えると「無限大」しかなさそうですが、自然数は無限でも順番に数えてゆくことができますが、有理数や実数はどんな2数の間にも数があり順番に数えることができなそうです、実は無限にも大小関係がありそうです。
全単射を利用して基数(濃度)という個数を拡張した概念を定義します。
ある集合Aとある集合Bの間に全単射が存在するときに、Aの基数とBの基数(濃度)は等しいと定義します。有限集合の場合は個数とします。集合Aに対する基数を#Aで表します。
特に、自然数全体の集合の基数を(アレフ・ゼロ)という記号で表します。自然数全体の集合 {1, 2, 3, ・・・} は 記号で表しますので#=です。
無限集合では面白いことに、部分集合が全体と同じ濃度を持っていても不思議ではありません。
事実、自然数全体と正の偶数全体には全単射(n → 2n)があります。明らかに正の偶数全体は自然数の部分集合です。しかし、基数は同じなのです。
さらに驚いたことに整数全体={・・・, -2, -1, 0, 1, 2, ・・・}も自然数={1, 2, 3, ・・・}と同じ基数なのです。たとえば、写像fをの要素zについて、z<=0の時は f(z) = 2|z| ∈ 、z>0の時はf(z) = 2z - 1 ∈と定義すれば、全単射になります。
面白いことに、自然数の2つ組(n, m)の全体を考えても、と基数は変わりません。たとえば、写像をと定めます。逆写像は少々複雑ですが (ただし、はを超えない最大の整数を表す)とおいて、と定義できて、f, gは全単射(1対1対応)となることがわかります。
との基数が等しいことがわかりましたので、もと基数が等しい(たとえば、の最初の2成分を、最初の成分に対応させる)、結局の基数と等しいことがわかります。一般に(mは任意の自然数)も基数はであることがわかります。
またすべての有理数は分数つまり整数の比で表せるのですから、有理数全体は整数の2つ組(n, m)の全体と対応させることができます。単純に(n,m)とn/mを対応させてしまうと、同じ分数を表す、(n,m)が複数あることになってしまいますが、一度出てきたもの(既約分数でないもの)は飛ばして、対応させれば、自然数と1対1対応であることがわかります。
写像と単射と全射と全単射について
以前にも「集合と基数の説明 - IIJIMASの日記」 に書いたのですが、再び説明を考えてみました。
数学の集合論で写像というのは、ある集合Aの要素aに対して、集合Bの要素bを1つ定める対応とのことです。特に写像をfで表して、bのことをfによるaの像といいf(a)と書きます。また、「aはfでbに写される」などといいます。とくにAが有限集合の場合、fを表で表せます。逆に表があるとfが定義できます。
たとえば、好きな果物を答えてもらうアンケートした結果の表を考えます。
アンケート回答者 | 好きな果物 |
---|---|
xさん | バナナ |
yさん | リンゴ |
zさん | みかん |
と定めると、「好きな果物」は「アンケート回答者」から「果物集合B」への写像です。
Aのすべての要素をfで写した、Bの要素をすべて集めてできた集合をfによるAの像といいf(A)であらわします。
写像のうちで特殊な性質をもつものに名前がついています。
単射
写像fが単射であるとは、どんな異なる要素x,yのfによる像も同一( f(x) = f(y) )にならないということです。
以下の表で定義される写像は単射ではありません。
アンケート回答者 | 好きな果物 |
---|---|
xさん | バナナ |
yさん | リンゴ |
zさん | リンゴ |
異なる要素yさん、zさんの「好きな果物」の像は同一の「リンゴ」になってしまうからです。このようなことが起こらない写像を単射と呼びます。この例で写像が単射になるのは異なる回答者が同じ果物を好きだと回答しない場合です。1つでもAからBへの単射がある時、Aの各要素に対応するBの重複しない要素があるのだから、Aの要素数はBの要素数以下です。
全射
写像fが全射であるとは、どんなBの要素bに対しても、Aの要素aが存在してf(a)=bとなることです。果物の選択肢の集合Bにじつはブドウもあった場合は、以下の表で定義される写像は全射ではありません。
アンケート回答者 | 好きな果物 |
---|---|
xさん | バナナ |
yさん | リンゴ |
zさん | みかん |
ブドウを好きと答えてくれる回答者がいないからです。このようなことが起こらない写像を全射と呼びます。この例で写像が全射になるのは、すべての選択肢にある果物を好きだという、回答者が少なくとも一人いる場合です。1つでもAからBへの全射がある時、Bの要素に対して、Aの要素が1つ以上存在するので、Aの要素数はBの要素数以上になります。
ツイッターで、3年連続して、11月11日11時11分11秒にポストできた!
3年連続して、11月11日11時11分11秒にポストできました!今年は、モバツイだったので秒までは自信なかったんですが・・・帰宅して確認したら11時11分11秒にポストできてました!(だから何?
3年連続して、11月11日11時11分11秒にポストできたぞ!!!> 2008年: http://bit.ly/IIJIMAS081111 2009年: http://bit.ly/IIJIMAS091111 2010年: http://bit.ly/IIJIMAS101111
2008年
¹¹₁₁¹¹₁₁¹¹₁₁¹¹₁₁¹¹₁₁¹¹₁₁¹¹₁₁¹¹₁₁¹¹₁₁¹¹₁₁¹¹₁₁¹¹₁₁¹¹₁₁¹¹₁₁¹¹₁₁¹¹₁₁¹¹₁₁¹¹₁₁¹¹₁₁¹¹₁₁¹¹₁₁¹¹₁₁¹¹₁₁¹¹₁₁¹¹₁₁¹¹₁₁¹¹₁₁¹¹₁₁¹¹₁₁¹¹₁₁¹¹₁₁¹¹₁₁¹¹₁₁¹¹₁₁ ...
2009年
㋊㏪ 11:11:11[高田馬場]
2010年
11/11 11:11だ! [モバツイ]
Windows版のiTunesで現在聴いてる曲の情報を取得する(BAT編)
「Windows版のiTunesで現在聴いてる曲の情報を取得する(C#編)」、「同(Javascript編)」、「同(VBS編)」
の続き。
BATファイルでもできないかなと、検索してたら・・・面白いページが!
[Link]「Studio ODIN - blog風小ネタ集 > MS-DOSのバッチファイルに、WSH(JScript)のコードを記述する」
こういう小ネタ大好きです。ブログの著者さんありがとうございます。
さっそく、この方法を勝手に使用させてもらいます。BATファイルで・・・
新規テキストファイルに以下のコードを記述してGetiTunesCurrentMusic.batという名前で保存。
@if (1==1) /* @ECHO OFF CScript //Nologo //E:JScript "%~f0" %* goto :EOF rem */ @end var iTunesApp = new ActiveXObject("iTunes.Application"); var track = iTunesApp.CurrentTrack; var name = track.Name; var album = track.Album; var artist = track.Artist; var text = "[聴いてる♪]「"+name+" - "+album+"」 by "+artist; WScript.Echo(text);
で、実行します。
C:\>GetiTunesCurrentMusic.bat [聴いてる♪]「下水道 - Romancing Sa・Ga ORIGINAL SOUND VERSION」 by 伊藤賢治
おお、BATファイル(?)でもできた♪
Windows版のiTunesで現在聴いてる曲の情報を取得する(VBS編)
「Windows版のiTunesで現在聴いてる曲の情報を取得する(Javascript編)」、「Windows版のiTunesで現在聴いてる曲の情報を取得する(C#編) - IIJIMASの日記」の続きエントリ…(思いつき)
これは、VBSのInputBox関数の間違った使い方だが・・・
以下を新規テキストに貼り付けて、保存名前をCurrentiTunesMusic.vbsとして、ダブルクリックすれば・・・
CurrentiTunesMusic.vbs
Set iTunesApp = CreateObject("iTunes.Application") Set track = iTunesApp.CurrentTrack text = "[聴いてる♪]" & "「" & track.Name & " - " & track.Album+"」 by " & track.Artist r = InputBox("","iTunesで現在聴いてる曲",text) Set iTunesApp = Nothing
[Ctrl]+[C]でコピーすれば、同じだ…(笑)