Location via proxy:   
[Report a bug]   [Manage cookies]                

cygwinのpythonにpandasを入れる

状況

  • cygwinのsetupメニューに pandasがない
  • 日々バージョンが変わるので正しい手順は変わるかもしれない
  • 現状は
    • python 3.9.16

事前インストール

  • 以下のパッケージを事前にインストール(全部が必要かは不明)

  • python3

  • python39-devel
  • python39-wheel
  • python39-zmq
  • python39-numpy
  • python39-dateutil
  • python39-pytz
  • python39-six
  • tzdata
  • gcc-g++

ビルド

  • pip install pandas
$ pip install pandas
Collecting pandas
  Using cached pandas-2.2.3.tar.gz (4.4 MB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting numpy>=1.22.4 (from pandas)
  Using cached numpy-2.0.2-cp39-cp39-cygwin_3_5_4_x86_64.whl
Requirement already satisfied: python-dateutil>=2.8.2 in /usr/lib/python3.9/site-packages (from pandas) (2.8.2)
Requirement already satisfied: pytz>=2020.1 in /usr/lib/python3.9/site-packages (from pandas) (2023.3)
Collecting tzdata>=2022.7 (from pandas)
  Downloading tzdata-2024.2-py2.py3-none-any.whl.metadata (1.4 kB)
Requirement already satisfied: six>=1.5 in /usr/lib/python3.9/site-packages (from python-dateutil>=2.8.2->pandas) (1.16.0)
Downloading tzdata-2024.2-py2.py3-none-any.whl (346 kB)
Building wheels for collected packages: pandas
  Building wheel for pandas (pyproject.toml) ... done
  Created wheel for pandas: filename=pandas-2.2.3-cp39-cp39-cygwin_3_5_4_x86_64.whl size=47989414 sha256=42b578f1a6c8958aef0a768e32cbd04cbf2c391772dda80bc9fe5c4ecfba13af
  Stored in directory: /home/XXX/.cache/pip/wheels/2b/36/23/6475bb77e9f08ee0858eae6c33d81068a3d87a7fb286da0dc5
Successfully built pandas
Installing collected packages: tzdata, numpy, pandas
  Attempting uninstall: numpy
    Found existing installation: numpy 1.21.4
    Uninstalling numpy-1.21.4:
      Successfully uninstalled numpy-1.21.4
Successfully installed numpy-2.0.2 pandas-2.2.3 tzdata-2024.2
  • pip install openpyxl

cygwinのpythonにpandasを入れる

状況

  • cygwinのsetupメニューに pandasがない
  • 日々バージョンが変わるので正しい手順は変わるかもしれない
  • 現状は
    • python 3.9.16

事前インストール

  • 以下のパッケージを事前にインストール(全部が必要かは不明)

  • python3

  • python39-devel
  • python39-wheel
  • python39-zmq
  • python39-numpy
  • python39-dateutil
  • python39-pytz
  • python39-six
  • tzdata
  • gcc-g++

ビルド

  • pip install pandas
$ pip install pandas
Collecting pandas
  Using cached pandas-2.2.3.tar.gz (4.4 MB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting numpy>=1.22.4 (from pandas)
  Using cached numpy-2.0.2-cp39-cp39-cygwin_3_5_4_x86_64.whl
Requirement already satisfied: python-dateutil>=2.8.2 in /usr/lib/python3.9/site-packages (from pandas) (2.8.2)
Requirement already satisfied: pytz>=2020.1 in /usr/lib/python3.9/site-packages (from pandas) (2023.3)
Collecting tzdata>=2022.7 (from pandas)
  Downloading tzdata-2024.2-py2.py3-none-any.whl.metadata (1.4 kB)
Requirement already satisfied: six>=1.5 in /usr/lib/python3.9/site-packages (from python-dateutil>=2.8.2->pandas) (1.16.0)
Downloading tzdata-2024.2-py2.py3-none-any.whl (346 kB)
Building wheels for collected packages: pandas
  Building wheel for pandas (pyproject.toml) ... done
  Created wheel for pandas: filename=pandas-2.2.3-cp39-cp39-cygwin_3_5_4_x86_64.whl size=47989414 sha256=42b578f1a6c8958aef0a768e32cbd04cbf2c391772dda80bc9fe5c4ecfba13af
  Stored in directory: /home/XXX/.cache/pip/wheels/2b/36/23/6475bb77e9f08ee0858eae6c33d81068a3d87a7fb286da0dc5
Successfully built pandas
Installing collected packages: tzdata, numpy, pandas
  Attempting uninstall: numpy
    Found existing installation: numpy 1.21.4
    Uninstalling numpy-1.21.4:
      Successfully uninstalled numpy-1.21.4
Successfully installed numpy-2.0.2 pandas-2.2.3 tzdata-2024.2

cygwinのpythonにpandasを入れる

状況

  • cygwinのsetupメニューに pandasがない
  • 日々バージョンが変わるので正しい手順は変わるかもしれない
  • 現状は
    • python 3.9.16

事前インストール

  • 以下のパッケージを事前にインストール(全部が必要かは不明)

  • python3

  • python39-devel
  • python39-wheel
  • python39-zmq
  • python39-numpy
  • python39-dateutil
  • python39-pytz
  • python39-six
  • tzdata
  • gcc-g++

ビルド

  • pip install pandas
$ pip install pandas
Collecting pandas
  Using cached pandas-2.2.3.tar.gz (4.4 MB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting numpy>=1.22.4 (from pandas)
  Using cached numpy-2.0.2-cp39-cp39-cygwin_3_5_4_x86_64.whl
Requirement already satisfied: python-dateutil>=2.8.2 in /usr/lib/python3.9/site-packages (from pandas) (2.8.2)
Requirement already satisfied: pytz>=2020.1 in /usr/lib/python3.9/site-packages (from pandas) (2023.3)
Collecting tzdata>=2022.7 (from pandas)
  Downloading tzdata-2024.2-py2.py3-none-any.whl.metadata (1.4 kB)
Requirement already satisfied: six>=1.5 in /usr/lib/python3.9/site-packages (from python-dateutil>=2.8.2->pandas) (1.16.0)
Downloading tzdata-2024.2-py2.py3-none-any.whl (346 kB)
Building wheels for collected packages: pandas
  Building wheel for pandas (pyproject.toml) ... done
  Created wheel for pandas: filename=pandas-2.2.3-cp39-cp39-cygwin_3_5_4_x86_64.whl size=47989414 sha256=42b578f1a6c8958aef0a768e32cbd04cbf2c391772dda80bc9fe5c4ecfba13af
  Stored in directory: /home/XXX/.cache/pip/wheels/2b/36/23/6475bb77e9f08ee0858eae6c33d81068a3d87a7fb286da0dc5
Successfully built pandas
Installing collected packages: tzdata, numpy, pandas
  Attempting uninstall: numpy
    Found existing installation: numpy 1.21.4
    Uninstalling numpy-1.21.4:
      Successfully uninstalled numpy-1.21.4
Successfully installed numpy-2.0.2 pandas-2.2.3 tzdata-2024.2

モンティホール問題

問題

  • 3つのドアがあり、一つは当たりの新車が、それ以外はハズレを意味するヤギが後ろに隠されている。
  • あなたはどれかを一つを選択する
  • すると司会者が残りの2つのうち、ヤギが入っている方を開けてみせる。
  • あなたはドアを変えるチャンスが与えられる。変えるべきだろうか。

心理的には

  • 選択時点では2つのドアのどちらかが当たりである。
  • 五分五分なら最初の選択肢を固辞した方がいいのではないか。(変えて外れると悔しさがより大きい)
  • 実際のテレビショーでは多くの回答者が変えなかったらしい

数学的には(?)

  • プレイヤがAを選択したとすると、その当たりの確率は 1/3、残りの2つの当たりの確率があわせて 2/3
  • 司会者が C を開けた。そのため B が 2/3 になる
  • よって変える方が当たる確率が倍になる。
  1/3         2/3
<------> <------------->
    A       B       C
   ↑
  選択

  1/3      2/3
<------> <------><------>
    A       B       C
   ↑               ↑
  選択            司会者が開ける

司会者のポリシー

  • プレイヤが選択を変えない場合、確率は常に 1/3 のままであり、その後の司会者の行動によって変わることはないようにみえる。
  • しかし、司会者が 1/2 の確率で選ぶときだけ成立するのだという

司会者の選択が50%でない場合

  • 司会者は当たり以外を開けるので、事象としては以下の6つ。
1.Aが当たり、司会者は B を開ける
2.Aが当たり、司会者は C を開ける
3.Bが当たり、司会者は C を開ける
4.Bが当たり、司会者は A を開ける
5.Cが当たり、司会者は A を開ける
6.Cが当たり、司会者は B を開ける
  • プレイヤがAを選択し、司会者がBを開けてハズレを見せたものとする(前提)。そして司会者のBを選択する確率がいろいろの場合を考える。
  • 0%の場合
    • 0%とは、プレイヤがA を選択し、かつ、Aが当たりのとき、司会者は B と C を選べるが、このときは 必ず C を選ぶということ。
    • そんな司会者が B を選んだということから、A が当たりでないことが確定する。
1.Aが当たり、司会者は B を開ける→これが起きる確率が 0%
2.Aが当たり、司会者は C を開ける
3.Bが当たり、司会者は C を開ける→Bは当たりではないので対象外
4.Bが当たり、司会者は A を開ける→Bは当たりではないので対象外
5.Cが当たり、司会者は A を開ける→Aは選択済なので司会者はBを開ける
6.Cが当たり、司会者は B を開ける                
  • 確率

    • Bを開けたという条件に合うのは 5, 6 の場合だけ。C が当たりの条件付き確率は 100%。Aは0%
  • 50%の場合

1.Aが当たり、司会者は B を開ける→ 1/3 * 50%
2.Aが当たり、司会者は C を開ける→ 1/3 * 50%
3.Bが当たり、司会者は C を開ける→Bは当たりではない
4.Bが当たり、司会者は A を開ける→Bは当たりではない
5.Cが当たり、司会者は A を開ける→Bをあける
6.Cが当たり、司会者は B を開ける
  • 確率

    • Aがあたるのは No.1 だけ。つまり司会者がBを選んだという条件でAが当たる条件付き確率は (1/6) / ( 1/6 + 1/3) = 1/3
    • Cは、(1/3) / (1/6 + 1/3) = 2/3
  • 100% の場合

1.Aが当たり、司会者は B を開ける 1/3 * 100%
2.Aが当たり、司会者は C を開ける 1/3 * 0%
3.Bが当たり、司会者は C を開ける→Bは当たりではない
4.Bが当たり、司会者は A を開ける→Bは当たりではない
5.Cが当たり、司会者は A を開ける→Bをあける
6.Cが当たり、司会者は B を開ける  
  • 確率

    • Aがあたりの条件付き確率は (1/3) / ( 1/3 + 1/3) = 1/2
    • Cは、(1/3) / (1/3 + 1/3) = 1/2
  • よって司会者のポリシーによってAが当たりの確率は変わる

ドアの当たり確率が均等でない場合

  • ドアA は 40%、B は 20%、 Cは40% で当たるものとする。
  • あなたは当然 B を避けて、A を選んだ。当たる確率は 40%
  • なお、Aが当たりのとき司会者は50%の確率でBまたはCを選ぶとする

司会者が B を開けた場合

1.Aが当たり、司会者は B を開ける 40% * 50%
2.Aが当たり、司会者は C を開ける
3.Bが当たり、司会者は C を開ける→Bは当たりではない
4.Bが当たり、司会者は A を開ける→Bは当たりではない
5.Cが当たり、司会者は A を開ける→Bをあける
6.Cが当たり、司会者は B を開ける
  • 1は 1/5、5と6は合わせて 2/5 (40%)
  • Aが当たる条件付き確率は、(1/5) / (1/5 + 2/5) = 1/3 = 33%
  • 司会者がBを開ける前は 40% だったので Aの可能性は下がった…

司会者が C を開けた場合

1.Aが当たり、司会者は B を開ける
2.Aが当たり、司会者は C を開ける   40% x 50% = 20% (1/5)
3.Bが当たり、司会者は C を開ける    20%
4.Bが当たり、司会者は A を開ける→Aは選択済、Bは当たりなので不可能
5.Cが当たり、司会者は A を開ける→Cは当たりではない
6.Cが当たり、司会者は B を開ける→Cは当たりではない
  • Cを開けて、Aが当たりの条件付き確率は (1/5) / (1/5 + 1/5) = 1/2
  • Aの可能性は上がった。

モンティホール問題

問題

  • 3つのドアがあり、一つは当たりの新車が、それ以外はハズレを意味するヤギが後ろに隠されている。
  • あなたはどれかを一つを選択する
  • すると司会者が残りの2つのうち、ヤギが入っている方を開けてみせる。
  • あなたはドアを変えるチャンスが与えられる。変えるべきだろうか。

心理的には

  • 選択時点では2つのドアのどちらかが当たりである。
  • 五分五分なら最初の選択肢を固辞した方がいいのではないか。(変えて外れると悔しさがより大きい)
  • 実際のテレビショーでは多くの回答者が変えなかったらしい

数学的には(?)

  • プレイヤがAを選択したとすると、その当たりの確率は 1/3、残りの2つの当たりの確率があわせて 2/3
  • 司会者が C を開けた。そのため B が 2/3 になる
  • よって変える方が当たる確率が倍になる。
  1/3         2/3
<------> <------------->
    A       B       C
   ↑
  選択

  1/3      2/3
<------> <------><------>
    A       B       C
   ↑               ↑
  選択            司会者が開ける

司会者のポリシー

  • プレイヤーの選択したものの確率は常に 1/3 で、司会者の行動によらず変わらないようにみえる。(選択しなかったものの確率が変わる)
  • しかし、司会者が 1/2 の確率で選ぶときだけ成立するのだという

司会者の選択が50%でない場合

  • 司会者は当たり以外を開けるので、事象としては以下の6つ。
1.Aが当たり、司会者は B を開ける
2.Aが当たり、司会者は C を開ける
3.Bが当たり、司会者は C を開ける
4.Bが当たり、司会者は A を開ける
5.Cが当たり、司会者は A を開ける
6.Cが当たり、司会者は B を開ける
  • プレイヤがAを選択し、司会者がBを開けてハズレを見せたものとする。そして司会者のBを選択する確率がいろいろの場合を考える。
  • 0%の場合
    • 司会者は、BとCを選べるときは必ずCを選ぶ。つまりBが選ばれたということはAが当たりではない。
1.Aが当たり、司会者は B を開ける 1/3 * 0%
2.Aが当たり、司会者は C を開ける 1/3 * 100%
3.Bが当たり、司会者は C を開ける
4.Bが当たり、司会者は A を開ける->Bをあける(不可能)
5.Cが当たり、司会者は A を開ける->Bをあける
6.Cが当たり、司会者は B を開ける                
  • 確率

    • Bを開けたという条件に合うのは C が当たりの場合だけ。Aは0%
  • 50%の場合

1.Aが当たり、司会者は B を開ける 1/3 * 50%
2.Aが当たり、司会者は C を開ける 1/3 * 50%
3.Bが当たり、司会者は C を開ける
4.Bが当たり、司会者は A を開ける->Bをあける(不可能)
5.Cが当たり、司会者は A を開ける->Bをあける
6.Cが当たり、司会者は B を開ける
  • 確率

    • Aがあたるのは No.1 だけ。司会者がBを選んだという条件でAが当たる条件付き確率は (1/6) / ( 1/6 + 1/3) = 1/3
    • Cは、(1/3) / (1/6 + 1/3) = 2/3
  • 100% の場合

1.Aが当たり、司会者は B を開ける 1/3 * 100%
2.Aが当たり、司会者は C を開ける 1/3 * 0%
3.Bが当たり、司会者は C を開ける
4.Bが当たり、司会者は A を開ける->Bをあける(不可能)
5.Cが当たり、司会者は A を開ける->Bをあける
6.Cが当たり、司会者は B を開ける  
  • 確率

    • Aがあたりは (1/3) / ( 1/3 + 1/3) = 1/2
    • Cは、(1/3) / (1/3 + 1/3) = 1/2
  • よって司会者のポリシーによってAが当たりの確率は変わる

ドアの当たり確率が均等でない場合

  • ドアA は 40%、B は 20%、 Cは40% で当たるものとする。
  • あなたは当然 B を避けて、A を選んだ(当たる確率は 40%)

司会者が B を開けた場合

  • Aが当たりのとき50%の確率でBを選ぶとする
1.Aが当たり、司会者は B を開ける 40% * 50%
2.Aが当たり、司会者は C を開ける
3.Bが当たり、司会者は C を開ける
4.Bが当たり、司会者は A を開ける->Bをあける(不可能)
5.Cが当たり、司会者は A を開ける->Bをあける
6.Cが当たり、司会者は B を開ける
  • 1は 1/5、5と6は合わせて 2/5 (40%)
  • Aが当たる条件付き確率は、(1/5) / (1/5 + 2/5) = 1/3 = 33%
  • 司会者がBを開ける前は 40% だったので Aの可能性は下がった…

司会者が C を開けた場合

1.Aが当たり、司会者は B を開ける
2.Aが当たり、司会者は C を開ける   40% x 50%
3.Bが当たり、司会者は C を開ける    20%
4.Bが当たり、司会者は A を開ける->Bをあける(不可能)
5.Cが当たり、司会者は A を開ける->Bをあける
6.Cが当たり、司会者は B を開ける
  • Aが当たりの条件付き確率は (1/5) / (1/5 + 1/5) = 1/2
  • Aの可能性は上がった。

モンティホール問題

問題

  • 3つのドアがあり、一つは当たりの新車が、それ以外はハズレを意味するヤギが後ろに隠されている。
  • あなたはどれかを一つを選択する
  • すると司会者が残りの2つのうち、ヤギが入っている方を開けてみせる。
  • あなたはドアを変えるチャンスが与えられる。変えるべきだろうか。

心理的には

  • 選択時点では2つのドアのどちらかが当たりである。
  • 五分五分なら最初の選択肢を固辞した方がいいのではないか。(変えて外れると悔しさがより大きい)
  • 実際のテレビショーでは多くの回答者が変えなかったらしい

数学的には(?)

  • プレイヤがAを選択したとすると、その当たりの確率は 1/3、残りの2つの当たりの確率があわせて 2/3
  • 司会者が C を開けた。そのため B が 2/3 になる
  • よって変える方が当たる確率が倍になる。
  1/3         2/3
<------> <------------->
    A       B       C
   ↑
  選択

  1/3      2/3
<------> <------><------>
    A       B       C
   ↑               ↑
  選択            司会者が開ける

司会者のポリシー

  • プレイヤーの選択したものの確率は常に 1/3 で、司会者の行動によらず変わらないようにみえる。(選択しなかったものの確率が変わる)
  • しかし、司会者が 1/2 の確率で選ぶときだけ成立するのだという

司会者の選択が50%でない場合

  • 司会者は当たり以外を開けるので、事象としては以下の6つ。
1.Aが当たり、司会者は B を開ける
2.Aが当たり、司会者は C を開ける
3.Bが当たり、司会者は C を開ける
4.Bが当たり、司会者は A を開ける
5.Cが当たり、司会者は A を開ける
6.Cが当たり、司会者は B を開ける
  • プレイヤがAを選択し、司会者がBを開けてハズレを見せたものとする。そして司会者のBを選択する確率がいろいろの場合を考える。
  • 0%の場合
    • 司会者は、BとCを選べるときは必ずCを選ぶ。つまりBが選ばれたということはAが当たりではない。
1.Aが当たり、司会者は B を開ける 1/3 * 0%
2.Aが当たり、司会者は C を開ける 1/3 * 100%
3.Bが当たり、司会者は C を開ける
4.Bが当たり、司会者は A を開ける->Bをあける(不可能)
5.Cが当たり、司会者は A を開ける->Bをあける
6.Cが当たり、司会者は B を開ける                
  • 確率

    • Bを開けたという条件に合うのは C が当たりの場合だけ。Aは0%
  • 50%の場合

1.Aが当たり、司会者は B を開ける 1/3 * 50%
2.Aが当たり、司会者は C を開ける 1/3 * 50%
3.Bが当たり、司会者は C を開ける
4.Bが当たり、司会者は A を開ける->Bをあける(不可能)
5.Cが当たり、司会者は A を開ける->Bをあける
6.Cが当たり、司会者は B を開ける
  • 確率

    • Aがあたる No.1 だけ。司会者がBを選んだという条件でAが当たる条件付き確率は (1/6) / ( 1/6 + 1/3) = 1/3
    • Cは、(1/3) / (1/6 + 1/3) = 2/3
  • 100% の場合

1.Aが当たり、司会者は B を開ける 1/3 * 100%
2.Aが当たり、司会者は C を開ける 1/3 * 0%
3.Bが当たり、司会者は C を開ける
4.Bが当たり、司会者は A を開ける->Bをあける(不可能)
5.Cが当たり、司会者は A を開ける->Bをあける
6.Cが当たり、司会者は B を開ける  
  • 確率

    • Aがあたりは (1/3) / ( 1/3 + 1/3) = 1/2
    • Cは、(1/3) / (1/3 + 1/3) = 1/2
  • よって司会者のポリシーによってAが当たりの確率は変わる

ドアの当たり確率が均等でない場合

  • ドアA は 40%、B は 20%、 Cは40% で当たるものとする。
  • あなたは当然 B を避けて、A を選んだ(当たる確率は 40%)

司会者が B を開けた場合

  • Aが当たりのとき50%の確率でBを選ぶとする
1.Aが当たり、司会者は B を開ける 40% * 50%
2.Aが当たり、司会者は C を開ける
3.Bが当たり、司会者は C を開ける
4.Bが当たり、司会者は A を開ける->Bをあける(不可能)
5.Cが当たり、司会者は A を開ける->Bをあける
6.Cが当たり、司会者は B を開ける
  • 1は 1/5、5と6は合わせて 2/5 (40%)
  • Aが当たる条件付き確率は、(1/5) / (1/5 + 2/5) = 1/3 = 33%
  • 司会者がBを開ける前は 40% だったので Aの可能性は下がった…

司会者が C を開けた場合

1.Aが当たり、司会者は B を開ける
2.Aが当たり、司会者は C を開ける   40% x 50%
3.Bが当たり、司会者は C を開ける    20%
4.Bが当たり、司会者は A を開ける->Bをあける(不可能)
5.Cが当たり、司会者は A を開ける->Bをあける
6.Cが当たり、司会者は B を開ける
  • Aが当たりの条件付き確率は (1/5) / (1/5 + 1/5) = 1/2
  • Aの可能性は上がった。

モンティホール問題

問題

  • 3つのドアがあり、一つは当たりの新車が、それ以外はハズレを意味するヤギが後ろに隠されている。
  • あなたはどれかを一つを選択する
  • すると司会者が残りの2つのうち、ヤギが入っている方を開けてみせる。
  • あなたはドアを変えるチャンスが与えられる。変えるべきだろうか。

心理的には

  • 選択時点では2つのドアのどちらかが当たりである。
  • 五分五分なら最初の選択肢を固辞した方がいいのではないか。(変えて外れると悔しさがより大きい)
  • 実際のテレビショーでは多くの回答者が変えなかったらしい

数学的には(?)

  • プレイヤがAを選択したとすると、その当たりの確率は 1/3、残りの2つの当たりの確率があわせて 2/3
  • 司会者が C を開けた。そのため B が 2/3 になる
  • よって変える方が当たる確率が倍になる。
  1/3         2/3
<------> <------------->
    A       B       C
   ↑
  選択

  1/3      2/3
<------> <------><------>
    A       B       C
   ↑               ↑
  選択            司会者が開ける

司会者のポリシー

  • プレイヤーの選択したものの確率は常に 1/3 で、司会者の行動によらず変わらないようにみえる。(選択しなかったものの確率が変わる)
  • しかし、司会者が 1/2 の確率で選ぶときだけ成立するのだという

司会者の選択が50%でない場合

  • 司会者は当たり以外を開けるので、事象としては以下の6つ。
1.Aが当たり、司会者は B を開ける
2.Aが当たり、司会者は C を開ける
3.Bが当たり、司会者は C を開ける
4.Bが当たり、司会者は A を開ける
5.Cが当たり、司会者は A を開ける
6.Cが当たり、司会者は B を開ける
  • プレイヤがAを選択し、司会者がBを開けてハズレを見せたものとする。そして司会者のBを選択する確率がいろいろの場合を考える。
  • 0%の場合
    • 司会者は、BとCを選べるときは必ずCを選ぶ。つまりBが選ばれたということはAが当たりではない。
1.Aが当たり、司会者は B を開ける 1/3 * 0%
2.Aが当たり、司会者は C を開ける 1/3 * 100%
3.Bが当たり、司会者は C を開ける
4.Bが当たり、司会者は A を開ける->Bをあける(不可能)
5.Cが当たり、司会者は A を開ける->Bをあける
6.Cが当たり、司会者は B を開ける                
  • 確率

    • Bを開けたという条件に合うのは C が当たりの場合だけ。
  • 50%の場合

1.Aが当たり、司会者は B を開ける 1/3 * 50%
2.Aが当たり、司会者は C を開ける 1/3 * 50%
3.Bが当たり、司会者は C を開ける
4.Bが当たり、司会者は A を開ける->Bをあける(不可能)
5.Cが当たり、司会者は A を開ける->Bをあける
6.Cが当たり、司会者は B を開ける
  • 確率

    • Aがあたるのは No.1 の場合。 (1/6) / ( 1/6 + 1/3) = 1/3
    • Cは、(1/3) / (1/6 + 1/3) = 2/3
  • 100% の場合

1.Aが当たり、司会者は B を開ける 1/3 * 100%
2.Aが当たり、司会者は C を開ける 1/3 * 0%
3.Bが当たり、司会者は C を開ける
4.Bが当たり、司会者は A を開ける->Bをあける(不可能)
5.Cが当たり、司会者は A を開ける->Bをあける
6.Cが当たり、司会者は B を開ける  
  • 確率

    • Aがあたりは (1/3) / ( 1/3 + 1/3) = 1/2
    • Cは、(1/3) / (1/3 + 1/3) = 1/2
  • よって司会者のポリシーによってAが当たりの確率は変わる

ドアの当たり確率が均等でない場合

  • ドアA は 40%、B は 20%、 Cは40% で当たるものとする。
  • あなたは当然 B を避けて、A を選んだ(当たる確率は 40%)

司会者が B を開けた場合

  • Aが当たりのとき50%の確率でBを選ぶとする
1.Aが当たり、司会者は B を開ける 40% * 50%
2.Aが当たり、司会者は C を開ける
3.Bが当たり、司会者は C を開ける
4.Bが当たり、司会者は A を開ける->Bをあける(不可能)
5.Cが当たり、司会者は A を開ける->Bをあける
6.Cが当たり、司会者は B を開ける
  • 1は 1/5、5と6は合わせて 2/5 (40%)
  • Aが当たる条件付き確率は、(1/5) / (1/5 + 2/5) = 1/3 = 33%
  • 司会者がBを開ける前は 40% だったので Aの可能性は下がった…

司会者が C を開けた場合

1.Aが当たり、司会者は B を開ける
2.Aが当たり、司会者は C を開ける   40% x 50%
3.Bが当たり、司会者は C を開ける    20%
4.Bが当たり、司会者は A を開ける->Bをあける(不可能)
5.Cが当たり、司会者は A を開ける->Bをあける
6.Cが当たり、司会者は B を開ける
  • Aが当たりの条件付き確率は (1/5) / (1/5 + 1/5) = 1/2
  • Aの可能性は上がった。

モンティホール問題

問題

  • 3つのドアがあり、一つは当たりの新車が、それ以外はハズレを意味するヤギが後ろに隠されている。
  • あなたはどれかを一つを選択する
  • すると司会者が残りの2つのうち、ヤギが入っている方を開けてみせる。
  • あなたはドアを変えるチャンスが与えられる。変えるべきだろうか。

心理的には

  • 選択時点では2つのドアのどちらかが当たりである。
  • 五分五分なら最初の選択肢を固辞した方がいいのではないか。(変えて外れると悔しさがより大きい)
  • 実際のテレビショーでは多くの回答者が変えなかったらしい

数学的には(?)

  • プレイヤがAを選択したとすると、その当たりの確率は 1/3、残りの2つの当たりの確率があわせて 2/3
  • 司会者が C を開けた。そのため B が 2/3 になる
  • よって変える方が当たる確率が倍になる。
  1/3         2/3
<------> <------------->
    A       B       C
   ↑
  選択

  1/3      2/3
<------> <------><------>
    A       B       C
   ↑               ↑
  選択            司会者が開ける

司会者のポリシー

  • プレイヤーが選択したものの確率は、司会者の行動によらず変わらないようにみえる。
  • しかし、司会者が B と C の両方が候補のとき 1/2 の確率で B(or C)を選ぶときだけ成立するのだという

司会者の選択が50%でない場合

  • 司会者は当たり以外を開けるので、事象としては以下の6つ。
1.Aが当たり、司会者は B を開ける
2.Aが当たり、司会者は C を開ける
3.Bが当たり、司会者は C を開ける
4.Bが当たり、司会者は A を開ける
5.Cが当たり、司会者は A を開ける
6.Cが当たり、司会者は B を開ける
  • プレイヤがAを選択し、司会者がBを開けてハズレを見せたものとする。そして司会者のBを選択する確率がいろいろの場合を考える。
  • 0%の場合
    • 司会者は、BとCを選べるときは必ずCを選ぶ。つまりBが選ばれたということはAが当たりではない。
1.Aが当たり、司会者は B を開ける 1/3 * 0%
2.Aが当たり、司会者は C を開ける 1/3 * 100%
3.Bが当たり、司会者は C を開ける
4.Bが当たり、司会者は A を開ける->Bをあける(不可能)
5.Cが当たり、司会者は A を開ける->Bをあける
6.Cが当たり、司会者は B を開ける                
  • 確率

    • Bを開けたという条件に合うのは C が当たりの場合だけ。
  • 50%の場合

1.Aが当たり、司会者は B を開ける 1/3 * 50%
2.Aが当たり、司会者は C を開ける 1/3 * 50%
3.Bが当たり、司会者は C を開ける
4.Bが当たり、司会者は A を開ける->Bをあける(不可能)
5.Cが当たり、司会者は A を開ける->Bをあける
6.Cが当たり、司会者は B を開ける
  • 確率

    • Aがあたるのは No.1 の場合。 (1/6) / ( 1/6 + 1/3) = 1/3
    • Cは、(1/3) / (1/6 + 1/3) = 2/3
  • 100% の場合

1.Aが当たり、司会者は B を開ける 1/3 * 100%
2.Aが当たり、司会者は C を開ける 1/3 * 0%
3.Bが当たり、司会者は C を開ける
4.Bが当たり、司会者は A を開ける->Bをあける(不可能)
5.Cが当たり、司会者は A を開ける->Bをあける
6.Cが当たり、司会者は B を開ける  
  • 確率

    • Aがあたりは (1/3) / ( 1/3 + 1/3) = 1/2
    • Cは、(1/3) / (1/3 + 1/3) = 1/2
  • よって司会者のポリシーによってAが当たりの確率は変わる

ドアの当たり確率が均等でない場合

  • ドアA は 40%、B は 20%、 Cは40% で当たるものとする。
  • あなたは当然 B を避けて、A を選んだ(当たる確率は 40%)

司会者が B を開けた場合

  • Aが当たりのとき50%の確率でBを選ぶとする
1.Aが当たり、司会者は B を開ける 40% * 50%
2.Aが当たり、司会者は C を開ける
3.Bが当たり、司会者は C を開ける
4.Bが当たり、司会者は A を開ける->Bをあける(不可能)
5.Cが当たり、司会者は A を開ける->Bをあける
6.Cが当たり、司会者は B を開ける
  • 1は 1/5、5と6は合わせて 2/5 (40%)
  • Aが当たる条件付き確率は、(1/5) / (1/5 + 2/5) = 1/3 = 33%
  • 司会者がBを開ける前は 40% だったので Aの可能性は下がった…

司会者が C を開けた場合

1.Aが当たり、司会者は B を開ける
2.Aが当たり、司会者は C を開ける   40% x 50%
3.Bが当たり、司会者は C を開ける    20%
4.Bが当たり、司会者は A を開ける->Bをあける(不可能)
5.Cが当たり、司会者は A を開ける->Bをあける
6.Cが当たり、司会者は B を開ける
  • Aが当たりの条件付き確率は (1/5) / (1/5 + 1/5) = 1/2
  • Aの可能性は上がった。

Leeyesでwindows11のexplorerでzip圧縮したファイルが開けない

  • 日本語のフォルダがうまく展開できず、「xxx.jpgが開けませんでした」というエラーが出る
  • zipコマンドで圧縮したファイルであれば問題なく展開できる
  • 以下のサイトを参考に 7z.dll と ax7z.spi を入れる
  • Leeyesの設定画面で ax7z の優先度を axzip より上にする

画像ビューア「Leeyes」と「MassiGra」でアーカイブ(zip、lzh、rar 等)対応 - DoldoTeaParty

6が出る確率(ギャンブラーの誤謬)

「論理パラドクス」という本の「No.43 逆ギャンブラーの誤謬」に概ね次のような記述があった。

問題:
サイコロを連続で振っている。9回目までは1~5しか出なかった。
あなたは、10回連続で1~5が出る確率は約16%(5/6 ** 10 = 0.161505…)なので
次の10回目は8割以上の確率で6が出ると考えた。
合っているだろうか。

答え:
6が出る確率は常に1/6である

ふと自分について思い起こしてみると、ゲームのルーレットで赤が連続すれば次こそ黒だろう、0が何回も出ていないければそろそろ出るんじゃないか、とか考えていた。

これは何事も平均に近づくという直感からくるもので、つまり、大数の法則である。これは間違っていたのだろうか。

Google検索では期待する情報が得られなかったが、AI (Google Gemini) に質問したところ、一発で回答が来た。すごい!

質問
大数の法則によると、成功する確率が一定値のとき、連続で試行に失敗したあとの試行は
成功する確率が上がるのですか

解答
大数の法則は、多数回の試行を行った場合、平均が理論的な確率に近づいていくという法則です。
個々の試行の成功確率が上がることを示唆するものではありません。

誤解が生じる理由
    ギャンブラーの誤謬: 過去の結果が将来の結果に影響を与えると考えてしまうことです。
コイントスで連続して裏が出たから次は表が出るだろう、というような考えです。
    大数の法則の誤解: 大数の法則は、個々の試行ではなく、全体的な傾向を示すものです。

例:
コイン投げで表が出る確率は1/2です。連続で10回裏が出たとしても、次の試行で表が出る確率は
依然として1/2です。

なぜこのような誤解が生じるのか
    人間の心理: 私たちは、ランダムな出来事にもパターンを見つけようとする傾向があります。
    情報不足: 確率論の知識が不足している場合、誤解しやすいです。

まとめ
    大数の法則は、個々の試行の確率に影響を与えません。
    過去の結果は、将来の結果に影響を与えません。
    確率は、長期的な視点で考える必要があります。

補足:
    独立な事象: 各試行が互いに影響を与えないことを「独立な事象」といいます。
コイン投げやサイコロの目は、一般的に独立な事象とみなされます。
    条件付き確率: 過去の結果を考慮して確率を計算することを「条件付き確率」といいます。
しかし、独立な事象の場合、過去の結果は将来の確率に影響を与えません。

おおう…

ギャンブラーの誤謬について教えてください
ギャンブラーの誤謬について

ギャンブラーの誤謬とは、過去の結果が将来の結果に影響を与えると誤って考えてしまうことです。
特に、ランダムな出来事の繰り返しでよく見られる思考の誤りです。

ギャンブラーの誤謬が生じる例
    コイン投げ: コインを10回連続で裏が出た場合、「次は表が出るはずだ」と考える。
    ルーレット: 赤が5回連続で出た場合、「次は黒が出るだろう」と考える。
    宝くじ: 10回連続で外れた場合、「次は当たるはずだ」と考える。

うわああ…

なぜギャンブラーの誤謬が起こるのか?
- 人間の心理: 私たちは、ランダムな出来事にもパターンを見つけようとする傾向があります。
- 直感: 過去の経験から、連続して同じ結果が出ると、次は異なる結果が出るだろうと直感的に考えてしまいます。
- 願望: 自分が望む結果が出ることを期待し、そのように考えてしまうことがあります。

ギャンブラーの誤謬と確率の関係
- 独立な事象: コイン投げやルーレットの各回は、互いに影響を与えない独立な事象です。
- 確率: それぞれの試行の確率は、過去の結果に関係なく一定です。

重要なポイント:
    過去の結果は、将来の結果を予測する上で、直接的な根拠にはなりません。
    確率は、長期的な視点で考える必要があります。
    ギャンブラーの誤謬は、ギャンブルだけでなく、日常生活の様々な場面でも起こりうるものです。

ギャンブラーの誤謬を避けるために
    確率の知識を深める: 確率論の基本的な考え方を知ることで、誤った判断を避けることができます。
    客観的な視点を持つ: 感情に左右されず、冷静に状況を分析することが重要です。
    過去の結果にこだわりすぎない: 過去の結果はあくまで過去のものです。
    長期的な視点を持つ: 短期的な結果に一喜一憂せず、長期的な視点で物事を考えるようにしましょう。

まとめ
ギャンブラーの誤謬は、人間の自然な心理に基づいた思考の誤りですが、
確率論の知識を深めることで、この誤りを避けることができます。
ギャンブルだけでなく、投資や日常生活においても、確率論的な思考は役立つでしょう。

補足:
    ギャンブラーの誤謬と逆の誤謬: 一方で、「連続して同じ結果が出たから、次は同じ結果が出るだろう」と考える誤りも存在します。
    モンティ・ホール問題: 確率に関する有名な問題で、直感と異なる答えが出ることで知られています。
これらのキーワードで検索すると、より深く学ぶことができます。

この本のこの設問のタイトルが「逆ギャンプラーの誤謬となっているのは、次のような内容が続いているから。

あなたが部屋に入ったとき、部屋には3つのサイコロを前にした男がおり、あなたに訊ねた。
「サイコロを振り始めた1回目か、これまで何回もサイコロを振っていたのか、どちらか分かるだろうか」
「ヒントをもらえないか」
「今出ている目は6・6・6のゾロ目だ」
「なるほど、これが出る確率は 1/216 だ。こんな目が一回で出るはずがない。したがって何度もサイコロを振っていたはずだ」

ギャンブラーの誤謬が未来方向の影響の誤謬に対し、逆ギャンブラーは過去方向の影響となる。

Windows Emacs

.emacsの場所

  • 環境変数 HOME を登録し、$HOME/.emacs
  • ただし、HOMEを設定するとcygwinのホームディレクトリも変わってしまう

キーバインディング

  • global-set-key キー 関数
  • キーは文字列にするかリストで記述
; keymap 
(global-set-key "\C-j" 'delete-char)
(global-set-key "\C-h" 'delete-backward-char)
(global-set-key "\C-e" 'previous-line)
(global-set-key "\C-d" 'forward-char)
(global-set-key "\C-s"  'backward-char)
(global-set-key "\C-f" 'end-of-line)
(global-set-key "\C-z" 'next-line)
(global-set-key "\M-SPC"  'set-mark-command)
(global-set-key "\C-o" 'toggle-ime )
(global-set-key "\C-@" 'toggle-ime )
(global-set-key "\C-xg" 'goto-line)
(global-set-key "\C-xu" 'undo) 

; - を60表示
(global-set-key [?\C-c ?\C-d ?\C-d]
 '(lambda (arg) (interactive "P")
   (cond (arg   (insert (make-sequence 'string 60 :initial-element ?\=)))
         (t     (insert (make-sequence 'string 60 :initial-element ?\-)))
   )))
  • make-sequenceがなくて emacs-27では動かなかった。要調査

VirutalBoxのCentOS9 Streamに Guest Additionを入れる

まずOSをインストール

  • VirtualBox に CentOS 9 Stream をインストールする ** 本日(2024/7/09)時点の CentOS-Stream-9-latest-x86_64-dvd1.iso 11GB を使用
  • リソースが小さいとインストーラが起動せず Kernel Panic する → vCPUを2、メモリを4096MBに設定すると起動するようになった

Guest Addition のインストール

  • VirtualBoxの「デバイス」でGuestAdditionが入ったCDメディアをマウントできる。これまでこれを使ってきたが、これを実行するとビルドでエラーが出る
  • VirtualBox6.1を使っているせいではなく、新しいカーネル(2024年6月以降?)のせいらしい

  • 対処は

dnf install centos-release-kmods
dnf install virtualbox-guest-additions
systemctl enable vboxservice 

this next maybe need , keep in mind this still in a very early stage
systemctl start vboxservice 
systemctl restart vboxclient

Howto/VirtualBox - RPM Fusion

桁DP

桁DP(Digit DP)とは

  • 典型的には「1~Nまでの数で、条件を満たす数は何個あるか」といった問題
  • Nが非常に大きいため、1~Nのすべての数を数え上げることはできない
  • そのため N を整数に変換することなく、文字列のまま扱うのがポイント

問題例

桁ごとに分けて考える

  • 通常は dp[確定した桁数][smallerフラグ][条件によるバリエーション] = 総数 といった配列を使う
  • まずは smallerフラグを無視し、桁数だけを考える
dp[上位からの桁番号(1..L)][その桁まで数の合計のDの剰余] = この条件の個数

- L は N の桁数。
- 桁番号は1から始まるが 0 も初期値として配列を確保する

例として D が 3 で4桁の数(0000~9999)を考える

  • 初期値
 dp[0][0] = 1 // 3の剰余が0の個数
 dp[0][1] = 0 // 3の剰余が1の個数
 dp[0][2] = 0 // 3の剰余が2の個数
  • 初期値が1なのか0なのかはまだよくわかってない

ここで桁iと桁i+1の関係を考えるべきだが、その前に1桁目,2桁目を考えてみる。

dp[1][0] = 4 (3の剰余が0の個数、これは1桁目が0,3,6,9のとき)
dp[1][1] = 3 (3の剰余が1の個数、これは1桁目が1,4,7のとき)
dp[1][2] = 3 (3の剰余が2の個数、これは1桁目が2,5,8のとき)
  • 次に2桁目を考えてみる。
  • 2桁目は1桁目と加算して剰余する。
  • 1桁目の剰余は0,1,2の3通りある。
  • 2桁目は"0"から"9"まであるが、例えば"5"のとき
dp[2][(0+5)%3] = dp[1][0]
dp[2][(1+5)%3] = dp[1][1]
dp[2][(2+5)%3] = dp[1][2]
  • 最後の行は1桁目までの剰余が2で2桁目が"5"のとき
  • dp[2][1] = dp[1][2] = 3
  • (つまり1桁目までの剰余が2で2桁目が5の数は 25, 55, 85 の3つ)
  • を意味する
  • これは"5"の場合だけなので"0"から"9"まで考えなければならない。
  • 桁iと桁i+1にすると
for d in range(10):
  dp[i+1][(0 + d)%3] += dp[i][0]
  dp[i+1][(1 + d)%3] += dp[i][1]
  dp[i+1][(2 + d)%3] += dp[i][2]

続く

swi-prologでutf-8を使う

For SWI-Prolog, there is init.pl file, you could set the encoding flag in that files.

Open swipl-win.exe -> Settings -> User init file..., SWI-Prolog will prompt you to create a init.pl file. In my computer, it is C:\Users\Chansey\AppData\Roaming\swi-prolog\init.pl.

Copy the following code to that file :

:- set_prolog_flag(encoding, utf8).

Restart swipl-win.exe or swipl.exe, you can load utf-8 encoding file by default.

https://stackoverflow.com/questions/65851820/how-to-set-the-utf-8-for-the-code-file-pl-in-swi-prolog-desktop