FC2ブログ

名もなき黒猫の散歩道

MENU

魚を求めて

大海原へ。


こんにちは、黒猫です。先日、こちらのお知り合いの方に誘われて、船釣り(タラ釣り)へ行ってきました!
あさ6時、Half moon bay という場所からこんな船に乗って、

IMG_7478のコピー

どんぶらこ(?)と揺られながら出発(こんな小さめの船ですが釣り人20人 + 3人の船員さんが乗っています)。
移動中は船員さんが、

IMG_7484のコピー 
こんなふうにイカ(エサ)を裁いてくださいました。そうしている間にも船は進み、

IMG_7492.jpg 
モントレー沖合に1時間くらいかけて到着し、さぁいよいよ開始です!
一面曇り空で、波も穏やかではない条件でしたが、、、

IMG_7491のコピー 
と、早速こんな風に釣れてしまいました(全部タラの仲間らしいです)!その後も、糸を垂らして底まで落とせば1分もしないうちに魚が釣れるという、夢のような状況でした。釣っている最中には大きなクジラを見ることができたりもして、本当に楽しいひとときでした。
この日は、私だけではなくみなさん良く釣れていたようで、本当は午後2時くらいに帰港予定だったはずが、12時過ぎには帰ることができていました(ひとり10匹の制限があるため)。

IMG_7493のコピー 
帰る途中には、このように船員さんが釣った魚を簡単に裁いてくれました。本当に手際よく裁かれていて、ただただその技術のすごさに脱帽です。。200匹ちかくあった魚があっという間に裁かれてしまいました。
また帰る途中、船員さん達がサケ釣りをしていまして、

IMG_7498のコピー 
こんな風に本当に大きなサケを釣っておられました。ただこのサケは養殖サケのようで、お持ち帰りできず、すぐに海に返されていました。残念。
(脂ヒレと呼ばれるヒレを養殖時に切除することで、そのヒレの有無を指標に養殖かどうかを見分けられるようにしているようです)


釣って裁いて貰った魚はお持ち帰りして、食べるのですが、黒猫一人で食べるのは寂しいので、お知り合いの方に調理して頂いて、美味しいところだけを戴くことにしました 笑

IMG_7502.jpg 
IMG_7507.jpg

 本当に美味しかったです。煮魚なんてアメリカに来てから食べていなかったので、懐かしさを噛みしめながら堪能しました。お寿司も、釣ったばかりだからか、すごくネタに弾力がありました。その他数品作って頂きましたが、一つの種類の魚からこれほどまでにたくさんの美味しい料理ができることにただただ感動していました。本当にありがとうございました。

今回、本当は銀ダラを釣るという目標があったのですが、残念ながらそれは叶いませんでした。次回こそは・・・という思いで今はいっぱいですが、果たしてチャンスはあるのかどうか。。でも船釣り自体は本当に楽しかったので、またこちらでも日本でも、いつか挑戦したいと思います。

それではこのあたりで。最後まで読んで下さりありがとうございました!また、お世話になった方々、本当にありがとうございました!


続・まじめに数当てをやってみた

こんにちは黒猫です。今回は前回の続きで、数当てする方法の改善に挑みます。前回記載した、


ランダムのいいところは、1~100全ての数字に対して等しく、1発で当てる可能性を秘めていることです。つまり、数字の当てやすさを全ての数字に対して均等に配分してくれる性質があります。この性質を、無駄がないけれども数字の当てやすさが均等ではない1/2法に足し合わせることができれば、もう少し改善できるかも知れません

という予想に則って、次のような案を考えました。

1. 推測後の可能性のある範囲の大きさが、推測前の可能性のある範囲の大きさの1/3以下になるまでランダムで粘り、1/3以下になったら1/2法で確実に求める(毎回判断ver.1)
2. 1.と同じだが、1回目の推測だけは1/2法を使う(毎回判断ver.2)
3. 開始地点をランダムにして、あとは1/2法で頑張る(はじめだけランダム)
4. はじめ1回は1/2法で全体を2分して、そこからランダムに選んでいく(はじめだけ1/2法)

というわけで1.から順番にシミュレーションしてみました。前回と同様、1~100の各値を答えにした時の試行を各1000回繰り返し、その時の平均値と標準誤差を示しています。

1. 毎回判断ver.1
1.png
ぜ、全然変わらないだと・・・!?ま、まぁこういうこともあるよね・・・汗


2. 毎回判断ver.2
2.png
山がいっぱいできました 笑 少し良くなっている気はしますが、波打っているせいでバラツキが大きいので、もう少し何とかしたいところ。 


3. はじめだけランダム
3.png う、美しい・・・。これだと全体的に6回程度で当てられそうです!


4. はじめだけ1/2法
4.png カモメみたいになってしまいました 笑 全体的にあまり改善されてなさそうです。

というわけで全部を試してみた結果、 3. はじめだけランダム法 が最も優秀そうだということがわかりました!ちなみに謎の数の値を無視して、全体での当てるまでにかかった試行回数の平均値を求めると下のようになりました。
Statics.png
全体的な平均値も、1/2法とはじめだけランダム法とではほとんど変わりませんでした。どうしてはじめだけランダム法ではバラツキがここまで減ったのか、よくよく考えれば当たり前な気もしますが(詳しくは追記へ)、逆に今回学んだのは、「予想ができなくても、プログラミングで網羅的に試してみて仮定を生み出すことができる」ということ知れたことです。やはりプログラミングは新しいモノの見方を与えてくれるような気がします。

こういうことを知ったら、実際に試してみたくなるのが世の常です 笑
というわけで以下に、数当てプログラムを作りました。しかし、今回はあなたが1つ数字を決め、コンピューターがそれを当てる、というものです(前のブログ記事と立場が逆バージョン)。上の結果も踏まえて、コンピューターには6回しかチャンスを与えていません。コンピューターの推理方法も3通りありますので、違いを感じるかどうか、是非試してみて下さい(再生ボタンを押すと始まります)!



それではこのあたりで!最後まで読んで下さりありがとうございました!

まじめに数当てをやってみた

皆さんお久しぶりです、黒猫です。最近色々あってプログラミング(Python3)から遠ざかっていたので、リハビリがてらに今回はまじめに数当てをやることにしました。

え、「数当てって何?」ですって?それはこんなゲームです(ゲーム開始後「降参」と入力すると答えを教えてくれます、昔ここに載せたものとほとんど同じです)。


簡単に言うと、1から100までの中にある「謎の数」を当てるゲームです。毎回、推測した数字が謎の数より大きいか小さいかを教えてくれます。そのヒントを基に謎の数を当てるわけです。

実際、与えられたヒントを基にデタラメに数を推測してやってみると、下のような結果になります。
random.png  
ここでは、1から100までの各値を謎の数に設定して、プログラムにその数字を当てさせています。各値に1000試行かけて、その平均値(と標準誤差)を表したのが上の図です(色は10個毎に変えています)。だいたい8回くらいチャンスがあれば平均的には当てられる、ということになります。


で、今回黒猫が試したのは、「じゃあもう少し工夫して、少ないチャンスで当てられるようにならないのか?」ということです。


少ないチャンスで数を当てるには、どれだけ効率よく候補を絞ることができるかがカギとなりそうです。なのでまずは単純に、「常に可能性のある範囲の数の真ん中を狙う」という方法を考えました(1/2法)。例えば、答えが27なら、

27を当てる 
という感じで6回で当てることができます。これを1~100全ての数でシミュレーションしてみると、
half.png  
となりました。50は1回で確実に当てられるし、おそらくこれが最善策なのでは、と思います。

というより、黒猫は結局これを凌駕する方法を思いつかなかったのです 泣

・・・と、ここで終わっては面白くないので、
7回もかかることがこんなにあったらダメだろう
という難癖をつけ 笑、その解決に挑みました。

ランダムのいいところは、1~100全ての数字に対して等しく、1発で当てる可能性を秘めていることです。つまり、数字の当てやすさを全ての数字に対して均等に配分してくれる性質があります。この性質を、無駄がないけれども数字の当てやすさが均等ではない1/2法に足し合わせることができれば、もう少し改善できるかも知れません。

・・・と、ここでかなりの長さになってきたので、続きは次回にします 笑
ここまで読んで下さってありがとうございました、次回もお楽しみに!





約12マイル

こんにちは、黒猫です。今日は自転車を使ってサンフランシスコ周辺を散策してきました。サンフランシスコは坂道がかなり多い町なのですが、海沿いにはさすがに坂道はなく、快適に走ることができました。


IMG_7346.jpg 出発地点のフェリーターミナル。今日は土曜日なので、ファーマーズマーケットをしていました。その後Pier39の方へ北上し、ひたすら西へ。途中、

IMG_7352.jpg
Palace of Fine Arts というところに立ち寄りました。ギリシャ神殿の雰囲気を出していて、なかなか良い場所でした。そのままさらに西へ行き、着いたのは

IMG_7360.jpg ゴールデンゲートブリッジの下の、Fort Pointというところです。かつて砲台として建設されたようですが、戦ったことはおそらくなさそうで、当時の建物がきれいに残っていました。かくれんぼやらすると楽しそうな建物の造りでもあります 笑

IMG_7363.jpg ここからゴールデンゲートブリッジを仰ぎ見ることもできます。何回も見たことはありますが、やはり大きい。。で、そのあとこのゴールデンゲートブリッジを渡り、

IMG_7366.jpg Battery Spencerというところから、今度はゴールデンゲートブリッジを俯瞰。橋を渡っている間に曇ってしまいましたが、逆に霧の濃いサンフランシスコ感が出ていると信じています 笑 その後はSausalitoという街まで15分くらいで向かい、

IMG_7367.jpg Scoma's Sausalitoというお店で蟹バーガーを食べました。これは美味しかった。$20くらいしたけど食べる価値はありました。その後ぶらぶらと散策し、

IMG_7370.jpg
帰りはフェリーで帰りました。このフェリーは今日の出発場所であるフェリーターミナルまで行きます。ので、途中にある、

IMG_7376.jpg アルカトラズ島にかなり近づいてくれます。これはかなりラッキーでした。空が曇りなのが少し残念ではありますが。。

というわけで、1日かけて自転車旅をしてきました。走行距離は12マイル、つまり19 kmくらいです。そこそこ走りましたね、こうやって書くと。明日の筋肉痛が心配です 笑

そんな感じで。旅の備忘録でした。おつきあいいただきありがとうございました!

どこに立つか

こんにちは、黒猫です。とある所で意見を求められたような気がしたので書くことにしました。最近起きた、児童虐待から死亡してしまった事件についてです。家族構成は死亡した5歳女児、その母親、その交際相手、あと母親と交際相手の間に生まれた1歳男児、とのことでした。


この親に対する量刑などを言い出すと、素人の私からは感情論しか出ないので、そういうことは述べません。ただ、胸が痛くなる事件だ、という想いでいっぱいです。



今回の事件に関連したニュースの中に、「児童相談所の“事なかれ主義”が今回の事件に繋がった」というような記述を見かけました。確かに、今回の事件の直前に、情報を伝えられているはずの児童相談所の職員が自宅訪問をしているにもかかわらず、「子は外出中」という親の発言を信じ、虐待を受けていた女児と出会えなかったため、引き返しています。また、今回の事件までに2回、この女児は保護を受けているようですが、いずれも親の元へ返されているようです。親の元へ戻さざるを得なかったのは、児童相談所には親子を長期に引き離す権限はなく、家庭裁判所の判断が必要で、今回の場合では裁判で負けてしまう、という判断が根底にあったようです。


上記の事情を見て感じたのは、「子供は親の所有物でしかない」、という考えが日本ではまだ根強いのだろう、ということです。子供が被害者で親が加害者であることが自明であっても、基本的に親の言動を信じてしまう。また、虐待している親に“親権”を法的に握らせてしまっている現状では、子供を保護することはできないでしょう。こんな法律が未だにあるのは、上に述べたような親と子の関係に対する偏重な考え方が根底にあるように思います。子供の意見の真偽を見極めることは、特に子供がとても幼い場合にはかなり難しい問題になるかとは思いますが、もう少し子供の意見を尊重するような世の中になって欲しいと願います。


しかし、今回の事件では、この女児を両親から引き離すことが、唯一の正解だったのでしょうか。私には、100%引き離すべきだった、とは判断できませんでした。まだ真実がすべて分かっているわけではないですし、私もアメリカから無料のWEBニュースしか見ていないので、おおよその事態しか把握できてはいませんが、この母親は、本当にこの女児を虐待したいと思っていたのでしょうか。交際相手に対して、この母親もまた恐怖心を抱いていて、逆らえなかったということはないのでしょうか。もしも児童相談所が、親子ではなく、夫婦間の問題についても気にかけることができていたのなら、問題は違う方向へ向いたのかも知れません。児童虐待の加害者である親の中には、もう虐待する以外に逃げ場がなくて苦しんでいる人も、ごく一部存在するのかも知れないと感じました。こうなると、児童虐待は親と子供の問題、という単純な切り口で見ようとすること自体に問題があるのかも知れません。


この親2人には、1歳の別の男児もいます。私は、今回残念ながら亡くなってしまった女児のことよりも、この1歳の男児の今後を考えた判断を、今後裁判所が下してくれることを望んでいます。冷たい言い方であることを承知で述べますが、亡くなった命は戻りません。親の服役と、この男児の将来は無関係です。この女児の死が、何の罪もない男児に、明文化されない精神的で無期懲役な量刑を科すようなことがないことを、切に祈っています。

先日のジョー

こんにちは、黒猫です。もう6月なのになんだこの寒い毎日は。。

そんな毎日ですが、先日サンノゼまで足を運んで、コンサートに行ってきました!

IMG_7266.jpg 
久石譲ジブリコンサート!!

何回かYouTubeで見たことはあって、是非いつか見てみたいなぁと思っていたら、まさかの今年、アメリカでコンサートをするではありませんか!いやはや、これだけでもう留学してきた甲斐がありました 笑

出だしのナウシカからもうずっと涙腺崩壊気味で、となりの小学生の男の子にはさぞかし不審に思われていたことでしょう 笑 何曲か、コーラスが入った曲もあったのですが、その半分くらいはなんと、外国なのに日本語で歌っていました! ソロで歌われた方も2人おられたのですが、ひとり(外国人)は「もののけ姫」を、それはもう美しく、もちろん日本語で歌っておられました。本当にすごい。。もう一人はなんと久石譲さんの娘さんだそうで、ピアノを弾く久石譲さんと見つめながら、ピアノに手を乗せて歌われていました。こういうところも涙腺崩壊ポイントですね。。ジブリに親子愛を乗せてくるとか反則やろ。。

こういうコンサートで毎回感じるのは、音楽の力の強さです。もちろん今回はジブリという素晴らしいアニメが背景にあるけれども、(少なくとも私とは)生まれ育った環境が全く違う人たちが集まって、ひとつの音楽を聴いて、同じような感動を受けるという、音楽自体が持つ影響力は、他のどんな表現にも劣らないものだと私は感じます。音単体や音の塊自体は非言語的で、そこには辞書的に分類できるような意味も存在しないのに、それらの音が繋がり合わさるだけで、もちろん情報量は会話言語には全く届かないけれども、想いを伝える能力はその上をゆくという、この音楽の持つ不思議な力には、いつも驚かされます。こういうことを書いていると、昔マンドリンオーケストラにいたときにことを思い出しますね。もっとちゃんとギター練習すれば良かったなぁ。。笑

とりあえず、日本に帰ったらもののけ姫をちゃんと見たいと思いました 笑
それでは今回はこのあたりで。読んで頂いてありがとうございました!

カリフォルニアIDカードへの道のり

お久しぶりです、黒猫です。いつの間にかFC2の “足あとメッセージ機能” 無くなったんですね。時代は移り変わるなぁ。。笑 さて今日は、題名の通り、先日「カリフォルニアIDカード」なるものを取得したので、それについてのご紹介文です。



カリフォルニアID (State ID) とは。

 日本では同一のものは無いですが(マイナンバーが似ている)、いわゆる“運転できない免許証”です。「いや、そんなん意味ないやろ?」ですって?そんなことはないんです。黒猫、アラサーですが、こちらではヒゲを剃っていると確実に年齢確認(21歳以上かどうか)を受けちゃうんですね!アジア人は若く見られる、というのは本当です(ちなみに女性だと30代半ばでも、年齢確認されるらしいです 笑)。だからお酒など買うのにも今までずっとパスポートを持ち歩いていました。けれど、さすがに面倒になってきたなぁ。。と思って、今回このカードを取ることにしたわけです。運転免許証でも良かったのですが、技能試験とか筆記試験受けるのが面倒だし、留学も10年などいるつもりはないので、車買う予定も無いし。。ということでやめました。



必要なもの。

お役立ち情報になれば、ということで。今回必要だったのは、

  • Form DL44(申請書類)
  • パスポート
  • J1ビザ関連の書類(DS2019)
  • I-94
  • 居住証明(米国銀行からの郵便物)
  • SSNカード
  • 現金(30ドル、クレジットカードは不可です!デビットカードはOK)

です。



当日。

 このカリフォルニアID、申請はDMVという運転免許証センターで行います。なんで運転免許証センターなんだ・・・と思いましたが、郷に入っては郷に従うしかありません 笑。今回はサンフランシスコ市内にあるDMVへ行きました。これが混み具合のハンパないこと。建物の外で1時間並びました。。この間にひとり日本人の知り合いが増えたくらいには、十分に長かったです 笑
 で、建物にようやく入れて、前に並んでいた知り合いになった日本人は、所有物不足で退場させられ(お疲れ様でした。。)、私はある程度持っていたので、そのまま建物に入ることができました。そこから40分くらい待ち、やっと受付。書類確認をされていると、「I-94ないで」の一言。
 ここまで黒猫は、その書類がいること自体、知らなかったのです(公式HPにもはっきりとは書かれていない!笑)。やってしまった。。と思ったのですが、向こうから「coffee shop行ったら印刷できるから行っておいで」と言われました。確かに、I-94はアメリカ大使館公式HPにアクセスして、自分のパスポート番号を打ち込めば、手に入れることができる簡単なものです。
 でも待て。coffee shopって何!?ということで、もう一度他の人に尋ねました。「印刷できる所ってどこ?」「コヒーショップだね。」・・・。こひー?・・・コピー!!copy shop!!ということでようやく空耳を理解し 笑、印刷屋さんでI-94を印刷し、事なきを得ました(2回目は事情を説明したら、すぐに受付させてくれました)。
 そして受付から1時間待ち。ようやく、申請窓口へ書類を提出しました。対応してくれたのは中国人の若い方で、本当に親切で、ありがたかったです。向こうから「ここのDMV混みすぎだよね、日本の役所もこんなものなのか?」「ここのDMVはほんまヤバい。ホームレスいっぱい来てるしね。」など、色々と話しかけて下さり、楽しかったです。前のSSNカード申請の時も結構話したし、こちらの役所はこんな雰囲気なのかも知れませんね。それにしても、途中、隣の窓口に英語が分からない中国人が来て、全部中国語応対してもらっていたのにはびっくりしましたが。サイン欄の"Date"の意味もわからんって、どんだけやねん。。さすがは中国、人数で世界を押し切っていますね 笑(確かに、アメリカではあちこちに中国人が居るので、英語を話せなくても生きていけるのです!)。
 その後、IDカードに必要な顔写真撮影にさらに30分待ち、ようやく晴れて解放となりました。総じて約3時間!笑 なかなか時間がかかりましたが、この日からちょうど2週間して、無事IDカードが郵送されてきました。めでたしめでたし。

これでようやくパスポート無しにどこでも行けるようになりました。IDカード申請は時間とお金はかかりますが、それだけのメリットはあると思います(もうすぐアメリカ国内線搭乗も、このIDカード(Real ID)がなかったら、ややこしいことになりますし)。あと、住所証明にもなります。もしも気になる方がおられましたら是非チャレンジして下さい。この記事がカリフォルニアIDの作り方の参考になれば幸いです。

それではこのあたりで!備忘録に付き合って頂いてありがとうございました!

Crabbing

こんにちは、黒猫です。先日はこちらの知り合いに誘われて、カニ釣りに行ってきました!行ったのは、サンフランシスコから見て南西のPacifica Pierというところです。

こんな感じで海に突き出しているところの上で行いました。

  

カニ釣りは針で釣るのではなくて、写真のような輪っかのついたワナを沈めて、そこにカニの足を引っ掛けさせて、引き上げる、というふうにして行います。輪っかの中央にある金属製の部分に、鶏肉や魚のアラなどを入れてカニをおびき寄せるのです。
写真に写っている黄色い物差しは、この場所でカニ釣りをするためには所有しなければならないパスポートのようなもので、この物差しで大きさを測り、小さければ海に返さなくてはなりません。ここで釣っている皆さんは律儀に守っているようで、皆さんせっせと測っていました(他にも投げ釣りは禁止されていますが、そこは守らずみんな投げ釣りしてました 笑)。大きさに関しては、警察の巡回がたまにあるようで、見つかると罰金なので、それを恐れて皆さんちゃんとしているのかもしれません。
  

今回は網も使っていました。この写真のように、ここでは2種類のカニが釣れるようです(赤くない方が食べるには美味しいらしいです)。 
 

釣っている時に近くに来たアシカ(アザラシ?耳がある気がするのでアシカだと思うのですが)。小さいのを釣ってリリースしてもこいつが食べてるんじゃないかな。。笑 それにしてもこの辺りは自然が本当に豊富ですね。
またそのうち船釣りにも参加させていただけそうで、今からそれも楽しみです。また行ったらブログ書こうと思います。
それでは今回はこの辺りで!読んでくださりありがとうございました!

でんでん虫

こんにちは、黒猫です。もうすぐ新年度ですね。桜が日本では咲き始めている頃でしょうか?

こちらサンフランシスコは現在雨期の真っ最中で、最近ずっと雨の日が続いています。1年のうちほとんどの雨の日が、12月から2月に集中するのが普通なのですが、今年は2月までは降らなかった分、3月に集中しているようで、久しぶりに日本らしい日々?を過ごしております 笑

さて、サンフランシスコに来てやたら多いなと思ったのがコイツたち。
IMG_6864.jpg 
カタツムリです。他の場所は知りませんが、私の住んでいる周りではやたらとカタツムリを見ます。で、この写真を見て何か思いませんか?そう、カタツムリは足跡を残すらしいのです!黒猫は全然そんなこと知りませんでしたので、これを見た時は「なんで!?」と思いました。まぁそう思ってしまうともっと間近で見たくなるものでして、アップ写真も頑張って撮りました 笑

IMG_6865.jpg 
尻尾が浮いていますね!頭も、影の様子を見る感じ、浮いていそうです。どうやら、カタツムリはのそのそと這いずって前進しているのではなく、体の一部だけを地面に付けて、他は宙に浮かせて動いてるみたいです。ある程度身体が前進したら、新しい場所に着地して、また前進する、という感じですね。

ここから先はネット情報ですが、実はナメクジはこの動きをできないらしいです!(ご想像通り、這いずって前進します)ですので、足跡を見れば、その生き物がカタツムリかナメクジか分かる、ということになりますね!え、甲羅を見ればわかるじゃないかって?そんな利口なツッコミをできる人は嫌いですよ 笑 でも実際に、ナメクジの中には小さいとはいえ甲羅を持つものもいますので、こういう判別方法も大事なのかも知れません(その他、呼吸する器官などが違うようですよ)。


というわけで、久しぶりに日常の更新でした。何はともあれ、雨が大好きというわけではないので(サンフランシスコは日常的に寒いですし)、早く雨期には明けてほしいものです。ではこのあたりで。読んで下さりありがとうございました!


大蛇の咆哮

ヘビが吠えるのかどうかはさておき 笑

こんにちは、黒猫です。

前回のブログでは、Pythonがいかに遅いかをまざまざと見せつけられたため、さらに他の言語とも比較してみようと思い、Java, Ruby, R言語も追加して全部やり直してみました。その結果がこちら!
Fig_180222_test_1.png

なんでPython2の方が遅くなってるんだ・・・?
もしかしすると私のPCで時間を計る時に、他のアプリをどれくらい開いているのかに、結果が影響を受けているのかも知れません。しかし全てのデータは同じ日に取っていますので、やっぱりPythonが遅いということには変わりないようです。

ちなみに速いお方達の拡大図はこちら。

Fig_180222_test_2.png 
じ、Javaはえぇ。。。
このあたりはコンパイラ(機械語へ翻訳するプログラム)がいかに優秀かに依存しているようです。ちなみにこれを計った後に、C++を最適化してコンパイル(機械語へ翻訳)する方法を知りまして、それをやってみると、0マイクロ秒以下になって計測不能になりました
なので、おそらく最速はC++です。Cは試していませんが、おそらくこの程度ならC++とほぼ同じ速度を発揮すると思います。


というわけで、汚名を挽回できず最下位に終わったPython
しかし、ちまた(特に機械学習やAI系)ではPythonは大人気です。機械学習やAIでこういう煩雑な処理が皆無とはとても思えません。なので何とかなるのではないかと思って色々と考えてみました。
今回使用したコードは以下になります。


#coding: utf-8
import time

for i in range(10):
    start = time.time() #計測時間開始
    ans = 0
    for i in range(100000000):
        ans += (i+1)
    end = time.time() #計測時間終了
    print(end - start)


このコードがなぜ遅いかというと、1億回の繰り返しを行っている“for i in range(100000000)”というところが遅いからに他なりません。ここでは、「ansという名前の変数を読んできては、数字を足して、ansにもう一度値を代入する」という動作を1億回行っています。実はこの「ansにもう一度値を代入する」というのは時間を遅くする要因になったりします。というわけで、値を代入する回数を減らそうと思いました。その結果がこちら。


#coding: utf-8
import time

def ichioku(que):
    for i in range(100000000):
        que += (i+1)
    return que

for i in range(5):
    start = time.time() #計測時間開始
    ans = 0
    ans = ichioku(ans)
    end = time.time() #計測時間終了
    print(end - start)


このコードでは、ichiokuという名前の関数(道具)を作っています。この関数を使えば、ある値を渡してやると、その関数の中で1億回足し算をしてくれ、その結果だけを返してくれます。つまり上のコードと比べて、「ansにもう一度値を代入する」という動作が少なくて済みます。

さらに、関数を作ってやると、「JITコンパイラ」というものを使うことが出来ます。これは簡単に言うと、「Pythonの処理を最適化しよう」という道具です。これの使い方は簡単で、以下のように、"import numba" と "@numba.jit" を書き加えるだけです。


#coding: utf-8
import time
import numba

@numba.jit
def ichioku(que):
    for i in range(100000000):
        que += (i+1)
    return que

for i in range(5):
    start = time.time() #計測時間開始
    ans = 0
    result = ichioku(ans)
    end = time.time() #計測時間終了
    print(end - start)


というような感じで、3種類用意してみました。果たしてその結果はいかに!?

Fig_180222_python.png 

Inlineが何も変化を加えていない1つ目、Definitionが関数を作った2つ目、そしてJITがJITコンパイラを用いた3つ目です。
JITコンパイラ速過ぎるやろ。。
ちなみに平均値を書くと、Inlineが27秒、Definitionが17秒、そしてJITが0.2秒でした。
Definitionで約2倍に速度が向上するのにもびっくりしたのですが、それにもましてJITコンパイラの威力にただただ脱帽しました。これでもC/C++・C#・Javaには敵わないのですが、使える程度には十分に速いと私は思います。
(ちなみに関数を作ると今回Pythonは速くなりましたが、Rubyで同じことをしても速くなりませんでしたし、C#では遅くなってしまいました。このあたりは書き方や、言語のクセに、結果が左右されるようです)


というわけで、何とか汚名を挽回できました。よかったね、Python 笑
(ちなみにC++とPython以外の速度の向上方法は調べておりませんので、全ての言語がもっと速くなる可能性は十分にあります。特にSwiftは速いと言われるのでもっと速くできると思います。)

というわけで、自己満足は一区切り尽きました 笑
読んで下さった方々、どうもありがとうございました!