2023-08-29

サイコロを振って出る目はランダムなのか

コンピュータ登場以前に存在した双六のようなボードゲームでは、サイコロを振って、出た目だけ進んでゴールを目指します。サイコロを振って出る目は理論的は各々1/6の確率になる筈ですが、それは無限回数を試行した場合であって、少ない試行回数では出る目に偏りがあるかもしれません。しかし確率が各々1/6であることは期待しています。そうでなければ、そのサイコロはイカサマかと疑ってしまうでしょう。

 

テレビの時代劇などでは、仕掛けをしたサイコロが賭場でバレて大騒ぎになるシーンを目にします。ネット上にも「丁半博打のサイコロについて 質問があります。」のような質問があがっています。僕が気になっているのは、賭場でイカサマをするかどうかではなく、サイコロの出る目の確率は均等に1/6であるべきだという点です。

 

話は変わりますが、ポイントカードを利用する上で、Web上のサポートサイトには双六のようなミニゲームが提供されている場合があります。サイコロを振って出た目だけ進むと、止まったところで、「何歩すすむ」とか「何歩もどる」のようなイベントが発生します。Web上で提供されているゲームなので、現実にサイコロを振っている訳ではないと思いますが、そのサイコロは「本当にランダムなのか」という点で疑念があります。

 

例えば、2マス先に「もどる」のマスがあった時にサイコロを振ると、なぜか「2」の目がでることが多いような気がしています。「1」~「6」の目がランダムに出ているのではなく、「2」の目が出やすくなるようなロジックになっているんじゃないかという疑念があります。まるで「吸い寄せられる」ように、「もどる」のマスにコマが引き寄せられているように感じるのです。Web上で提供しているミニゲームが何のプログラミング言語で組まれているのかは知りませんが、コマの現在位置や、その先にあるマスのイベントが何であるのか、ロジック的に取得することはできるでしょう。それを踏まえてサイコロを振って目を出すことも出来るのかもしれませんが、それは禁じ手かと思います。ミニゲームのロジックを知りたい訳ではありませんが、ランダムに目が出るサイコロになっていることを期待しています。

8月が終わろうとしていても、猛暑が続く

今夏は気象観測上で記録的な猛暑だと報道されています。梅雨の頃から既に気温が高く、7月から8月の盛夏も猛暑でした。ニュースなどでは8月8日の立秋の頃には「暦の上では秋」と毎年同じような事を言っています。「暦の上で秋」かもしれませんが、現実の天候では「夏真っ盛り」なので、「残暑」とか「(暦の上では)すでに秋」とか言われても、だからどうしたとしか思えません。


2023年は9月になっても平年よりも気温が高い状況が続くようです。早く涼しくなって欲しいと思います。何時になったら秋らしい気候になるのか分かりませんが、それでも秋は一歩ずつ近づいている気がします。8月初め頃は蝉の鳴き声が喧しく響いていましたが、 8月が終わりに近づいてきて、蝉の鳴き声は聞こえなくなってきました。その一方で、夜になると耳をすませば虫の声が聞こえてくるようになってきました。


気休めかもしれませんが、「暑さ寒さも彼岸まで」という言葉があります。猛暑の日々が続いているとは言え、終わりが近づいていると思います。

2023-08-28

BeautifulSoupでHTMLファイルから情報を取り出す

HTMLファイルの中でTABLEを使っている箇所から情報を取り出そうと思って調べていると「BeautifulSoup」というものを見つけました。これが全体として何が出来るのかは分かっていませんが、HTMLのTABLEで組まれている箇所から情報を抜き出すことは出来ました。最終的にはCSVにして情報を蓄積していこうと考えていますが、そのあたりをどのようにするかは考えているところです。

 

Webを検索すればBeautifulSoupを使った事例が見つかります。汎用的にしていくにはロジックが複雑になると思いますが、情報を抜き出すところだけなら、簡単でした。

#!/usr/bin/python3

import sys

f = open(sys.argv[1], "r", encoding="shift_jis")
data = f.read()
f.close()

import csv
from bs4 import BeautifulSoup

soup = BeautifulSoup(data, "html.parser")
for tab in soup.find_all("table"):
    with open("monex.csv", "w") as file:
        writer = csv.writer(file)
        for row in tab.find_all("tr"):
            csvRow = []
            for cell in row.findAll(["td", "th"]):
                s = cell.get_text().strip()
                if len(s) != 0:
                    csvRow.append(s)
            writer.writerow(csvRow)
# [EOF]


HTMLから特定の情報を抜き出すにはXSLTも使えそうです。XSLTは勉強中なので、どのようにしたら良いのか分かりませんが、きっと簡潔にできるのでしょう。またはsed、awkなどで文字列を解釈するロジックを書くことも出来るのかもしれません。それほど長々としてスクリプトにはならないと思いますが、BeautilfulSoupやXSLTほど簡潔にはならない気がします。

2023-08-26

fetchmailでメールを取得できなくなった

個人宛のメールは、自宅で使っているFreeBSD上のfetchmailを使って、プロバイダから手元に一括してダウンロードしています。プロバイダが提供するWebメールを利用することもありますが、ちょっと参照するだけです。

 

いつものようにfetchmailでメールを取得しようとしたら、EXIT CODE=2というエラーになってしまいました。FETCHMAIL(1)にあるEXIT CODEの説明を読んでみましたが、それでは問題の原因がわかりません。そこで詳しい情報を得るために-vオプションをつけてfetchmailを実行してみました。そのログには、次のような出力がありました。

SMTP< 451 4.1.8 Domain of sender address ******* does not resolve

 

DNSの問題のように見えます。こういう時には、以前であればnslookupを使っていたところですが、最近はdrillを使うようです。「解決できない」と出ているドメインを指定してみると、応答が得られずタイムアウトしてしまいます。しかし正常終了するドメインもあるので、僕のところのネットワークが切れている訳ではなさそうです。しかも問題発生しているドメインは、同じところから数日前にもメールが来ていて、その時には問題ありませんでした。

 

一時的なトラブルなのか、DNSの世界で何か問題が発生しているのか、よくわかりません。僕が参照しているDNSサーバの問題なのか、世界中の全DNSサーバで問題となっているドメインの情報が消えているのか、根本的な原因がどこにあるのか不明です。問題の原因が何であれ、長引かずに解決して欲しいところです。

 


2023-08-24

MarineTrafficでPACIFIC WORLD号の位置がわかる

2023年8月23日にピースボートの第115回船旅が神戸から出航しました(「2023年8月23日(水)、Voyage115が出航しました」)。このあと北米や欧州を廻って、12月に日本に戻ってきます。

 

今頃どこを航海しているんだろうかと思いをはせるのも愉しいものですが、ネットを調べてみたら「MarineTraffic」を見つけました。どういう仕組みなのかは詳しくありませんが、指定した船舶の現在位置を地図上に示してくれます。アカウントを作れば出来ることが増えるようですが、作らなくても、その船の位置や、周辺の他の船の情報は得られます。

 

パシフィック・ワールド号の現在位置を追いかけながら、旅先の様子を想像するのも愉しいですが、いつかは実際に乗船して、自分の目で体験したいと思います。

2023-08-23

船室のテレビ

先週「ピースボート40周年記念イベント」に参加した際、「ピースボート地球一周の船旅 総合カタログ 2024-2025年」を貰いました。これを眺めているだけでも、再び乗船したい気持ちになってきます。

 

以前に乗船したOLVIAもそうでしたが、いろいろな種類の船室が提供されています。もっとも安いのは「フレンドリーエコノミー/バジェット」というグレードだと思います。一人で参加すると相部屋になりますが、そういう人は多いので、これも何かのご縁ということです。


船室備え付けの設備を確認すると、シャワーとかトイレというのはOLVIAと同じですが、どうやら各船室にはテレビが置いてあるようです。テレビがあって、どうするんだろう?船内放送があるのでしょうか。それともDVDなどを視聴するためにつかうんでしょうか。日本近海ならまだしも、日本から遠く離れてしまったら日本のテレビは映らないでしょう。寄港先で現地のテレビ放送が映るのであれば、それはそれで面白いとは思います。

2023-08-20

猛暑と水分補給と塩分補給

2023年の夏は、気象観測史上稀に見る猛暑のようです。今年ほど酷くないとしても、夏には水分補給が大切です。よく言われるのは、喉が渇いたと自分で思った時には手遅れなので、喉が渇いたと思わなくても定期的に水分補給をするのが良いということです。個人差もあるとは思いますが、僕の場合には炎天下を歩くだけで汗がどんどん流れてきます。ちょっと休憩がてら食堂に入ったら、コップの水を2~3杯くらいは、あっという間に飲んでしまいます(本当はもっと飲みたい)。

 

とにかく水はいくらでも飲める気がするのですが、ここで気になるのが、こんなに水ばかり飲んでいても問題ないのだろうかということです。これまでに水を飲みすぎて体調を崩した経験はありませんし、考えすぎかもしれませんが、「水中毒」になってしまうのは避けたいところです。 


水ばかり飲むのではなく、塩分補給もした方が良いという情報を見かけます。しかし反対に、塩分は普段の食事から得ている分だけで十分だし、むしろ高血圧にならないためには減塩を意識すべきで、あえて塩分補給をする必要は無いという情報もあるようです。

 

水分補給はともかく、塩分補給は賛否が分かれるので、どうしたらよいのか迷います。僕自身は高血圧ではありませんが、だからと言って塩分摂取量に無頓着でよいわけではありません。当面は食事から摂取するだけに留めておこうかと思います。