FC2ブログ

名もなき黒猫の散歩道

MENU

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

親愛なるサンフランシスコの皆さんへ

こんにちは、黒猫です。ついにこの日がやってきました。今日を以て、日本へ帰ります。次の仕事への期待半分、去る悲しみ半分、という心境です。
先日の私の送別会で、私はまともな日本語を話せた気がしなかったので、今日はリベンジも兼ねて(笑)、サンフランシスコでお世話になった方々に御礼のお手紙を書こうと思います。


サンフランシスコでは本当にたくさんの方のお世話になりました。送別会には、ほぼ研究室外のメンバーでしたが、30人近くも集まっていただきました。すべての人は、ある人が私に別の人を紹介して、その人がまた別の人を紹介して、というように繋がっていて、本当に人に恵まれた1年半だったと、しみじみと感じました。大学、特に研究室に入ってからの6年間は、どちらかというと見知った人々の中で過ごしていたことと、私は本来喋り下手でコミュニケーション能力も低い人間であることから、初めてサンフランシスコへ来たときは、周りに知人が全くいないという久しぶりのこの環境をしっかりと扱えるのか、正直、ものすごく不安でした。しかし、サンフランシスコで出会った皆さんはものすごく話しやすく聞き上手で、また色々なことを教えて下さったり体験させて下さったりして、当初の不安なんて微塵も思い出させないほどでした。グランドキャニオンも、ヨセミテも、マンドリンオーケストラも、釣りも、競馬も、ハイキングも、サイクリングも、夜景も、BBQも、カリフォルニアワインも、その他たわいない会話やイベントも含めてすべて、私一人では体験し得なかったことです。皆さんの御陰で、サンフランシスコに来て良かったと、今充実した気持ちと共にこの文章を書くことができました。これだけ多くの経験を戴きながら、還元することができずに帰国となってしまい、本当に心苦しいですが、私より先に日本へ戻られた方も含めて、すべての方々に本当に感謝しています。本当にありがとうございました。

いつかまた、サンフランシスコや日本や、全く別の場所で再会できますことを本当に楽しみにしております。それまでどうぞお元気でお過ごし下さい。太平洋の向こう側から、皆様のご多幸とご活躍をお祈りいたします。

それでは最後まで読んで頂きまして、ありがとうございました!


p.s.
最後の1週間は遊び倒したので、そのことを日本に帰ってから記事にします。
なのであともう少し、アメリカの記事は続きます 笑
お楽しみに。

スポンサーサイト

OS X 10.10

こんにちは、黒猫です。先日、こちらの知り合いの方にカリフォルニア屈指の名所に連れて行って頂きました!

IMG_8026.jpg
Yosemite です!
Yosemiteは、雨期明けの4月末以降の春がハイシーズンで、とても美しい滝を拝むことができます。しかし今回訪れたのは雨期直前の11月頭、ということで・・・

IMG_8025.jpg IMG_8024.jpg 
かろうじて少し岩がしめっている程度でした 笑 本当は、岩が黒ずんでいるところには水が流れているようです(こんな感じ)。それでも秋のYosemiteは、春の緑一色の景色とはまた違った、美しい姿でそこに存在していました。


IMG_8023.jpg IMG_8022.jpg IMG_8021.jpg

日本にはあまり無い岩山の風景は、本当に迫力が凄まじく、圧倒されるものばかりでした。  

Yosemiteはロッククライミングの聖地でもあるようで、頑張ってこの岩を登っている方もおられました。
 IMG_8018.jpg 
割れ目を使って登るようです。こんなツルツルの岩でも登れるものなんだなぁ。。 

今回訪れた時、Yosemiteはととても寒く、

IMG_8010.jpg 
川まで凍るほどでした。サンフランシスコも周辺地域の中では最も寒いですが、比べものにならなかったですね。久しぶりに日本の冬を思い出しました 笑

また、秋のカリフォルニア州は山火事のシーズンで、

IMG_8016.jpg
  IMG_8014.jpg    
車が通るすぐそばで山火事が起こっていました。本当に驚きましたが、山火事を見るなぞ滅多にできないので、とてもよい経験でした 笑


総じて本当に貴重な経験となりました。誘って連れて行って頂いた方には、本当に頭が上がりません。長時間運転して頂いて、本当にありがとうございました。

それでは以上になります、読んで頂きありがとうございました!


あの日聴いた音をもう一度

こんにちは、黒猫です。実はこの8月から、こちらのマンドリンオケの市民団体に所属して、大学卒業以来久しぶりに合奏に参加していました。


20人程度の小さい団体で、本番まで10回くらいしか練習がありませんでしたが、回を重ねる度に少しずつ良くなっていく感じや、みんなで音楽を創り上げていく過程に、とても懐かしさを感じる日々でした。もちろんすべて英語での指示で、音をドレミ...表記ではなくCDE...表記で話すことや、イタリア人指揮者の訛った数字を聞き取るのに初めはとても苦労しましたが(何小節目のことを言っているのかわからなかった)、慣れてくると冗談も聞き取れるようになってきて、とても楽しいひとときでした。

そして先日、ちょうど演奏会を終えてきました。
日本では演奏会というと、ホールを貸し切って行うのが普通だと思いますが、こちらではホールの代わりに教会を借りて行うことが多く、日本では味わえない経験をしました。演奏会自体も、大学の頃のように本番一発勝負ではなく、3つの都市で行う形式だったので、最後の方は緊張するというよりも、演奏会そのものを楽しむことができました。

IMG_7979.jpg 1日目。真ん中の輪にマンドリン演奏者が入って、演奏します(私はギターなので輪の外でした 笑)

IMG_7987.jpg2日目。色々な絵が飾ってある、集会所のようなところでした。 

IMG_7991.jpg 3日目。ここが一番立派な教会でした。装飾がとても綺麗で、聖壇に上がって演奏するという貴重な機会も得られて、すばらしかったです。


演奏曲目は有名曲が多めで、ベートーベン・バッハ・ヴィヴァルディと古典的なものに、現代的なサティを取り入れるという面白い編成でした。個人的には、大学時代についぞ叶わなかったバッハの合奏曲をここで演奏することができ、それだけでもこの団体に入った甲斐がありました。演奏そのものは、大学の頃と比べると、粗削り感が否めはしませんでしたが(大学の頃は毎週3回、ほぼ一年間ずっと合奏練習がありましたしね)、逆にどこか人間味のある演奏で、弾いている分にはとても楽しかったです。聴いていた方も楽しまれたことを祈っております 笑


今回この団体に入ろうと思ったのは、とある日本人の方が渡米してきてすぐに吹奏楽団にパーカッションで賛助する姿に勇気をもらったことと、この団体に以前から入られていた日本人の方が私を気前よく誘ってくれたことがあったからです。団体に入ってからは、同じギターパートの方には、上手く喋れはしなかったけれども仲良くして頂き、本番前には良い音の鳴るギターまで貸して頂けて、本当に至れり尽くせりでした。この団体にいた日本人の方には毎回練習会場まで送って頂き、さらには一緒にブルーグラスバーまで連れて行って頂いて、感謝の言葉しかありません。演奏会への参加は、今回が最初で最後でしたが、こちらで知り合った本当に多くの方に観に来て頂いて、今回のことだけをすべて思い返しても、本当に人の縁に恵まれた留学生活だったと感じました。これからも、人の縁を大事に、いただいたものは私の中で昇華して誰かを幸せにできるように、日々生きていこうと感じました。

以上、長くなりましたが私のための備忘録でした。読んで頂きありがとうございました!


今風アート

こんにちは。黒猫です。先日、どうしても帰国までに行っておきたい場所があったので、時間を見つけて行ってきました!それは、SFMOMA(San Francisco Museum Of Modern Art)です。その名の通り、サンフランシスコ市内にある、現代美術を取り扱った美術館です。今回は私の興味のある特別展をやっていたこともあって、訪れることにしました。


建物に入った時の第一印象。とにかく白い!広い!、です。笑 しかし、このシンプルで大きな空間を確保している館内構造は、各芸術作品を十分に引き立てていて、そこから発せられる力にただ圧倒されるばかりでした。
IMG_7946.jpg IMG_7947.jpg
海外の美術館は写真OKなのが良いですね。写真では、作品の力までは表現できていませんが(私の力不足 笑)。

IMG_7952.jpg
クモ。一番大きいのは私の身長より大きくて、かなり迫力がありました。

IMG_7954.jpg
立方体の辺の一部を取り出して、すべて並べてあります。理系の心をくすぐる作品でした。

IMG_7973.jpg
そしてレプリカとは言え、一番の目玉は何と言ってもこれでしょう。
デュシャン「泉」
ただの便器にサインしただけ。ですが、通常使われるコンテキストから分離独立させ、見ている人の中で解釈を与えることで、一種の芸術と化するものです。現代芸術の象徴とも言える作品だと思います。


そして、待望の今回の特別展とは!

IMG_7944.jpg 
ルネ・マグリット!
私の好きな画家の一人で、メッセージ性の強い作品がたくさんあります。

IMG_7961.jpg
絵の向こうにホンモノの夕日。ハイパーリアリズム(絵か写真か見分けがつかないくらいに忠実で繊細な風景画)を絵の上で表現する、という面白い手法を使っています。
 IMG_7965.jpg
リンゴで顔を隠された紳士。これは有名な絵ですね。マグリットはリンゴを顔面中央に配置することで、顔面を美しく仕上げる以上の集中を、顔面にあつめようとしたようです。
 IMG_7963.jpg
紳士の降る絵。これも有名なものです。ただ、こんなに小さいものだとは知りませんでした(大きいバージョンもあるのかな?)
 IMG_7969.jpg
通称「光の帝国」シリーズ。空は昼なのに家周りの空間は夜。マグリットはこの構図を何度も描いているのですが、今までこのシリーズを全て集めて展示したことはほとんど無かったようで、とても貴重な体験をしました。
 IMG_7960.jpg マグリットの初期の絵。ゴッホの影響を受けていると解説に書いてありました。この絵を見てから上の絵を見ると、ずいぶんと画風が変わったものです。

昔から、マグリットの絵は少し暗い印象が常にあって、不思議だったのですが、どうやらマグリットは第二次世界大戦中、ドイツの領地となっていたベルギーに住んでいたようで、そこでの負の経験が作風に大きく影響しているようです。そう言われてみると、自由がそこにあるのに自由を奪われているような印象を受ける作品もちらほら見受けられます(光の帝国など)。


本当に良い時間を過ごせました。心残りのひとつを消し去れました 笑
それでは、最後まで読んで下さりありがとうございました!

終わりと始まりと

皆さんこんにちは。黒猫です。

もうすぐ10月になりますね。
というわけで、報告します。

私、日本に帰ることになりました。

突然の話で、本当に自分でもまだ整理し切れていないのですが、もうすぐ日本で、大学の先生になります。小学生のときからの夢だった、いわゆる“博士”に一歩近づくことができて、本当に嬉しい限りです。科学研究はもちろん、大学教育にも興味があるので、これからたくさん経験を積みたいと思います。

突然の帰国になってしまったので、特に8-9月は、そこそこ悩みや不安が多い時期でした。そんなある日、同じラボのフランス人に相談(というか愚痴というか)をしたことがありました。以下はその時のフランス人に言われた言葉です。


人は仕事であれ恋愛であれ何であれ、
何も変わらない環境にいると、知らず知らずのうちに自分の周りに殻を作って、
自分が、あたかもその環境になじんでいるかのように感じる。
けれど、新しい環境にどうしても出て行かないと行けない時が人生にはあって、
そういう時は作った周りの殻を破って出て行かねばならない。
そうすると、今まで守ってくれていたものが無くなるから、
自分の想定している以上に、その新しい環境がストレスに感じることがある。
それに慣れるのには半年は必要。
だから受け入れて、自分が適応することを待つしかない。

いま、あなたは日本からアメリカに来て、また日本に戻るけれども、
自分の思っている以上に、これから日本に違和感を感じるはず。
もうあなたは"日本人"ではない。
あなたはもう1年半もアメリカに住んで研究しているのだから。
もう今のあなたの心や考え方は、アメリカに適応してしまっている。
それが日本ですぐに使えるはずがない。
日本のダメなところもたくさん見えると思う。
でも、半年後にもう一度日本に順応した時、
あなたは、日本の方がいいところと、アメリカの方がいいところを、
見極められるようになる。
そうなれば、あなたはアメリカに来る前のあなたよりも、
柔軟な思考をもつことができるはず。
もう一回り、大きくなった自分に出会うことができる。
だからこれから大変だろうけど、心配しなくていいよ。


・・・良いことを言いますね。

彼女自身、今かなり大変な時期であるにもかかわらず、贈ってくれたこの言葉は、私には深く突き刺さりました。日頃どちらかというとおてんば(もしかしたらフランス人気質?)な彼女ですが、いつもこういうまじめな話をする時は、本当に色々と人生を教えてくれます。こういう人間になりたいものです。

日本に帰るまであと少しあるので、その間にもっとアメリカをたくさん感じて、研究面だけではなく、これからの人生の糧にできたら良いなと感じています。


それでは、アメリカでお会いした方も、日本のお知り合いの方も、またお会いしたことはないけれどこのブログを読んで下さっている方も、今後とも黒猫をどうぞよろしくお願いいたします。

岩の世界へ -3. 岩渓そして欲望

こんにちは黒猫です。前回、セドナより出発した一行が次に向かったのは・・・


P8140368.jpg


グランドキャニオン!言わずと知れた超名所です。

もちろん今回も前回同様、日本人である私たちは朝日を見に行きました!



P8140404.jpg P8140412.jpg 


マーサポイント、という場所です。
朝日も、朝日に染まる岩肌も、本当に言葉を絶する美しさでした。


・・・でもこんなきれいな写真ばっかりでは面白くないので。笑

こんなきれいな朝日の写真を撮るとき、周りはどうだったのか?というと・・・



P8140392_顔つぶし 

と、こんな感じでとっても群がっていました 笑

ちなみにこれ、8割以上日本人です!

アメリカとは思えないくらい日本語が飛び交っていました 笑

セドナの朝日を撮ったときも、周りは日本人ばかりだったので、外国の方は、あんまり朝日に何も感じないのかも知れませんね。私たちからしたら不思議ですけれども。逆になぜ日本人は朝日が好きなんでしょうね。太陽に対する崇拝?


昼になってもグランドキャニオンは相変わらず迫力満点で、日本にはない風景が広がっていて、本当に同じ地球なのか、と思うほどでした。


P8140448.jpg 

近くで山火事があったようで、全体的にモヤがかかっていたのが少し残念ではありましたが。。

色々と見た中で印象に残っているのは、デザートビューポイントのこんな建物です。



P8140491.jpg 

これはウオッチタワーという建物で、先住民族ナバホ族の見張り塔を再現したもののようです。ここは中に入ることができて、



P8140464.jpg P8140488.jpg 

中には、こんな感じでインディアンの書いた(?)絵がたくさん残されています。


この最上階からはグランドキャニオンを見下ろすことができて、他にはない景観でした。
(他よりも高い場所から見下ろすことができるため)




と、こんな感じで グランドキャニオンを昼過ぎに去り、最後の街へ車を走らせました。



P8140528.jpg 

家ごとお引っ越し中のトラックの隣を通り過ぎてたどり着いた先は・・・!


P8140541.jpg 







今までの大自然から一気に反対方向へ振り切ったような場所へ到達しました 笑

昼なので、まだまだこの写真では雰囲気がありませんが、


P8140556.jpg 


ストーンクラブという蟹を食べつつ日が暮れるのを待ってみれば、
(ちなみにこのストーンクラブの漁では、手をもぎ取って本体は海に返してやることで、もう一度手を生えさせるらしいです。なんとえげつない。。。笑)


P8140603.jpg 

P8140593.jpg 

完全に夜の街ですね!でも、本当に電飾が綺麗で、電光掲示板もハイテクで、さすがはラスベガス、という感じでした(小並感)。


この後はシルクドソレイユを見に行きました。行った先の劇場は小さい方だったようで、観客と受け答えがあり、何人かは本当にステージに上げてもらって参加する、という形態を取っていました(普通は参加型ではないようです)。内容もまぁまぁ大人なな感じで(笑)、しかし下品だというわけではなく、初めてのシルクドソレイユでしたが、こういうエンターテイメントの形もあるのだな、と思いました。



というわけで長かった旅もこんな感じで幕を閉じました。この5日間は、本当に貴重な経験となりました。誘って頂いて連れて行ってくださった方々には、本当に頭が上がりません。本当にありがとうございました。この場を借りて御礼を述べさせて頂きます。


 

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

岩の世界へ -2. 岩岳

こんにちは、黒猫です。ずいぶんと間が空いてしまいましたが、旅行の続きを書きたいと思います!


アンテロープ周辺を後にした一行が次にたどり着いたのは、セドナというところでした。
セドナは夕方に到着し、翌日早朝は日本人らしく、朝日を見に行きました。

P8130224.jpg

こんな町並みを見下ろしつつ、

P8130237.jpg 
まだかな?

P8130251.jpg 
お!!

P8130271.jpg  
ぴかーん!笑
という感じでご来光を見てきました。物心が付いてから、まともに朝日を見ようとして朝日を見たのは、今回が初めてだったので、朝日の持つ生命力というか、みなぎる力に圧倒されていました。

その後昼から、各岩山を見回っていました。

P8130302.jpg  P8130326.jpg P8120208.jpg 
どこもすごく特徴的な形をした岩ばかりで、この形になるまでの年月に圧倒されるばかりでした。なんでこんな形になるんでしょうね?不思議。。。

実はセドナは、ターコイズの産地としても有名なので、街のマクドナルドはもちろん、

P8130289.jpg 
ターコイズカラー!
何と世界でただひとつ、ここのマクドナルドだけがこの色をしているみたいですよ。
・・・食欲落ちそうと思ったのは気のせいでしょうか 笑


そんな感じで、さらに一行は南下し、次なる地点を目指しました。
というわけで今回はこのあたりで。読んで下さりありがとうございました!

あと2回くらい続きます!お楽しみに!

岩の世界へ -1. 岩波

こんにちは、黒猫です。8月はアメリカではバケーションの季節なこともあって、実は先週旅行へ行ってきました!金曜日夜にサンノゼ付近の知人の家に泊めさせてもらって、午前3時より出発しました。途中、


P8110021.jpg イヴァンパー・ソーラー・エレクトリック・ジェネレーティング・システムを通り過ぎ、

P8110025.jpg ラスベガスのトランプタワーを通り過ぎ、

P8110032.jpg 岩山を縫いくぐって着いたのは、

P8110041.jpg 大荒野!日本ではあり得ない地形と地平線の長さに、ただただ圧倒されるばかりでした。
ここまで12時間以上運転し(運転手の方々、本当にお疲れ様でした、ありがとうございました)、この日はこの近くのPageという街で宿泊。

そして翌日!

P8120067.jpg アンテロープキャニオン
今回の旅行の1つ目のポイントを楽しみました。
アンテロープは、upperとlowerと2種類のスポットがあり、
今回はupperへ向かいました。

アンテロープの入場には予約が必須なのですが、かなり人気が高く、前もって予約しないといけません。
今回はほぼ1週間前に、知人が予約することに偶然成功し、なんとか行けることになって良かったと、楽しみにしていました。
ところが!
なんと出発2, 3日前になって、「この予約はキャンセルにして欲しい」というありえないメールが届き、一気にどん底へ落とされたわけです。
ところが!笑
出発前日に黒猫が、別のupperツアーに空きができていることを偶然発見し、なんとか再び行けることになりました。前日に予約を取れるなんて普通はありえなくて、本当に人生の全ての運を使った気分でした 笑

そんな山あり谷あり山ありの経緯があって行ったupperのアンテロープでしたが、もう、絵の中にいるような気分でした。
P8120087.jpg P8120098.jpg P8120116.jpg P8120132.jpg 
2枚目の写真では、木の棒が引っかかっていたり泥が上の方に付いていたりしますが、これは、大雨が降った後におきる鉄砲水が、このアンテロープを流れるため、その時に流れてきた木の棒や泥が残っているのだそうです。いや、いま鉄砲水来たら死ぬやん、とは思いつつも、圧倒的な景観を楽しんでいました 笑

その後、

P8120158.jpg
グレンキャニオンダム周辺と、

P8120172.jpg ホースシューベンドを見に行きました。
アンテロープはおそらく一番良い時間よりは朝よりだったのですが、そのおかげでこのホースシューは一番良い時間に着くことができて、かなり満足でした。

その後少し走って、

P8120188.jpg ミティア・クレーター(バリンジャー・クレーター)というクレーターを見に行きました。
直径1.2 km 深さ200 mという大型のクレーターで、wikipediaによると、宇宙からの飛来物の衝突によって形成されたことが証明された地形は、このクレーターが初めてらしいです(つまり世界で初めて認められたクレーター)。ちなみに、隕石は鉄製で50 mくらいの大きさで、約5万年前に40,000 km/h 以上の速さで落下し、衝突時に半径3-4 km圏内の生物は即死したようです。なんと恐ろしい。。

そんな感じで各所巡りつつ次の街へ夜に到着し、一行は第2のポイントにたどり着きました。

というわけで次回へ続きます!ここまで読んで頂いてありがとうございました!

じゃんけんを判定する [Python3]

こんにちは。黒猫です。今回はちゃんとPythonを解説したいと思います!

前回の記事で40人でじゃんけんをしてはいけないことがよくわかりました。今回の記事はちょっとプログラミング側の話で、じゃんけんの勝敗をどうやってPythonで判定するのが一番良いのかについて述べたいと思います。

え、何でそんなこと考えないといけないかって?
実は前回の記事のデータ、2〜40人すべての計算が終わるまでになんと1日以上かかっているのです!つまり、いい加減な方法で勝負判定していると、もっと時間がかかってしまって、大変なことになります。こういう地道な努力と気配りがプログラミングでは大事だったりするのです。

では考えていきましょう。
2人程度のじゃんけんをプログラムで認識させるのであれば、じゃんけんの優劣(グーはパーに負けてチョキに勝つ、など)を全て記載して、勝敗を判定させれば良いと思います。

しかしこの方法では、人数が増えてくるとたちまち計算量がハンパなくなってきます。(3人なら3C2 = 3回の勝負判定くらいですが、10人なら10C2 = 45回の勝負判定、20人なら20C2 = 190回の勝負判定、というようにだんだんと増えてくる)
しかも3人以上の時には2人では起こりえない「あいこ」、つまり全員違う手を出す、という可能性も考えねばなりません。

ですので、方法を少し考えないといけません。

じゃんけんで勝負が着くとは、簡単に言えば「あいこ」にならないことです。
「あいこ」とは、

  1.  全員同じ手を出している
  2.  「グー」「チョキ」「パー」が出揃っている

の2通りが考えられます。逆に考えれば、「グー」「チョキ」「パー」のうち、どれか2種類だけが出ていれば勝負が着いている、ということです。

なので、例えばグー、チョキ、パーをそれぞれa, b, cと略記して、例えば10人が出した手をaabbbccabcと表現してやれば、あとはこの文字列を分析して何種類の文字があるのかを調べればよいことになります。

というわけで、以下の3つの方法を考えました。

  1. 集合の要素数で判断
  2. if で場合分け
  3. stripで削る

1. 集合の要素数で判断

Pythonには、“集合 (set)”という概念があります。これは“お互いに異なるデータの集まり”という意味です。例えば、

{あ, い, う}、{10, 21, 32, 43, 54}、{A, 65, え, 猫}

みたいなものはすべて集合ですが、

{あ, い, う, あ}

は、"あ"が2つあるので集合ではありません。この場合は強制的に"あ"が1つ削除されて、{あ, い, う}に変換されます。これを使ってやれば、

{a, a, b, b, b, c, c, a, b, c} --> {a, b, c}
{a, a, b, b, b, a, a, a, b, a} --> {a, b}
{a, a, a, a, a, a, a, a, a, a} --> {a}

というように変換可能ですので、あとは集合のデータの種類数(集合の長さ)を調べてやれば、勝敗が決まったかどうかが分かりそうです(上の例だと2番目だけ勝負が着いている)。

というわけでPythonでこれを書くと以下のようになります。
s = "aabbbccabc"       # じゃんけんの手を示した文字列をsと命名
s_set = set(s)         # 文字列sを集合に変換
if len(s_set) == 2:    # 集合の長さ(LENgth)が2のとき
    print("勝負あり") 
else:                  # 集合の長さが2以外のとき
    print("あいこ")

2. if で場合分け

Pythonには、文字列に目的の文字があるかどうかを検索する方法があります。それを使えば、

if aがある -- yes --> if bがある -- yes --> if cがない -- yes --> 勝負あり
if aがある -- yes --> if bがある -- yes --> if cがない -- no --> あいこ
if aがある -- yes --> if bがある -- no --> if cがない -- no --> 勝負あり
if aがある -- yes --> if bがある -- no --> if cがない -- yes --> あいこ

のように場合分けすることで勝負が着いたかどうかを判断できそうです。というわけでPythonでこれを書くと以下のようになります。
s = "aabbbccabc"             # じゃんけんの手を示した文字列をsと命名
if "a" in s:                 # 文字列sの中に"a"はあるか?
    if "b" in s:             # 文字列sの中に"b"はあるか?
        if "c" not in s:     # 文字列sの中に"c"は無いか?
            print("勝負あり")
        else:                # 文字列sの中に"c"がある時
            print("あいこ") 
    elif "c" in s:           # 文字列sの中に"b"は無いが"c"はあるか?
        print("勝負あり")
    else:                    # 文字列sの中に"b"も"c"も無い
        print("あいこ")
elif "b" in s:               # 文字列sの中に"a"は無いが"b"はあるか?
    if "c" in s:             # 文字列sの中に"c"はあるか?
        print("勝負あり") 
    else:                    # 文字列sの中に"c"が無い時
        print("あいこ")
else:                        # 文字列sの中に"a"も"b"も無い
    print("あいこ") 

3. stripで区切る

Pythonには、ある文字を使って文字列の両端からその文字を引き剥がす(strip)方法があります。例えば以下のような感じです。

"aabaaaacabaaa" -- aでstrip --> "baaaacab" 
"aabaababbbbb" -- bでstrip --> "aabaaba" 
"aaaaaaaaaaaaa" -- aでstrip --> "" 

複数文字を使ってstripすることもできます。

"aabaaaacabaaa" -- aとbでstrip --> "c"
"aabaababbbbb" -- aとbでstrip --> ""
"aabaababbbbb" -- aとcでstrip --> "baababbbbb" 
"aaaaaaaaaaaaa" -- aとbでstrip --> ""
"aaaaaaaaaaaaa" -- aとcでstrip --> ""

この例からわかるように、もし文字列に2種類の文字しか含まれない場合、その2種類の文字でstripしてやった時にのみ、文字列から文字がなくなってしまう、ということがわかります。
これを使えば、stripした後の文字列の長さを数えることで、勝負が着いたかどうかを判定できそうです。というわけでPythonでこれを書くと以下のようになります。
s = "aabbbccabc"                # じゃんけんの手を示した文字列をsと命名
method = ["ab", "bc", "ca"]     # 異なる手のペア(全3組)
ans = []                        # 解析結果の一時保存場所
for i in method:                # methodから1組ずつ取り出して解析(iにab, bc, caのいずれかが代入される)
    p = s                       # コピー作成(元の文字列を変更しないよう)
    ans.append(len(p.strip(i))) # iをpからstripした後のpの文字数(LENgth)を一時保存
if ans.count(0) == 1:           # strip後に文字列pが消えた(文字数 = 0)ときが1回だけあるとき
    print("勝負あり") 
else:                           # 上記以外
    print("あいこ") 


検証
という感じでじゃんけん勝負判定メソッドを3つ用意しました。次は、この実行速度を測ります。これ以上説明を書くと長ったらしいので、測定に使用した本丸のコードは追記に載せます(勝負判定メソッド自体に変化はありません)。どうやってPython3でグラフを書くのかなど、気になる方は見て下さい。

今回は1000人でのじゃんけんを10000回(勝負が着くとは限らない)行って、1回あたりの処理に必要な時間を調べています。結果は以下のような感じになりました。
janken_speedtest.png  
というわけで2つ目の「if で場合分け」法が一番速い、ということが分かりました。他に比べて5倍以上速いですね。すばらしい!

この結果を基に、前回の記事でのシミュレーションはすべて、この「ifで場合分け」法を使って行っています。これでも1日かかるとは。。やはり40人でじゃんけんしてはいけませんね。。笑

実は黒猫は、一番はじめに3.のstripの方法を思いついて計算を開始したのですが、2日経っても計算が終わらなかったので、諦めて改善方法を探ることにしたのが、今回の発端でした。いやはや、プログラムの効率って本当に大事です。。痛感。。


そんな感じで、終わりたいと思います!
私の自己満足にお付き合い頂きありがとうございました!笑

クラスのみんなでじゃんけん [Python3]

こんにちは、黒猫です。もう20年くらい昔、小学生の黒猫はあることを思っていました。

この教室のみんなで一緒にじゃんけんしてみたい」と。

基本的に10人くらい集まってじゃんけんする時は、2人組をたくさん作ってじゃんけんして、その勝った人同士でまたじゃんけんする、というようなことを繰り返すと思います。もちろんこれは、大人数で同時にじゃんけんすると、勝者が決まるまでに時間がかかってしまうことを経験的に知っているためです。

では、もしもクラスの全員(40人)が一緒にじゃんけんをしたらどれくらい時間がかかるのでしょうか?これが今回解きたい問題です。

というわけでいつも通り、Pythonでシミュレーションしてみることにしました!
具体的なコードは次回の記事に書くとして(自己満です 笑)、さっそく結果に行きましょう!

下のグラフでは、横軸は“じゃんけんに参加した人数”、縦軸は“1回勝負が着く(あいこではなくなる)までにじゃんけんをした回数”を示します。各人数、100シミュレーション行って、その平均値を図示しました。
janken_result_100trial_2-40people_v3.png    
100回しかシミュレーションしていないので、かなりブレブレではありますが、だいたいこんな感じでした。というわけで、40人でじゃんけんして1回勝負が着くためには、約320万回かかるみたいですね!1回のじゃんけんに5秒かかるとしたら、1600万秒かかるので、寝食なんてせずに行ったとすれば、だいたい185日かかるみたいですね!は、半年だと。。

というわけで「40人でじゃんけんはやってはいけない」が答えです 笑
ちなみに、16人までを拡大してみるとこんな感じです。
janken_result_100trial_2-40people(upto16).png 
16人程度で既に200回近くかかるので、1勝負つくのに1000秒、つまり約15分かかることになります。まだまだ現実的に行うには厳しいですね。10人でやっと20回くらい、つまり1分半くらいなので、これならまだできるかな?という感じです。

ですので、今回のシミュレーションで、「じゃんけんを一度にするなら、多くても10人まで」ということがわかりました。是非日常生活(?)に役立てて下さい 笑

ではでは今回はこのあたりで。最後まで読んで下さりありがとうございました!プログラミングに興味がある方は、次回の記事も是非見て下さいね!

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。