Programming

Instagram Grahp API+Twitter APIでInstagramの投稿をTwitterに連携するツールを作ってみた


タイトルの通りなのだが。
あまりきれいな実装じゃないけどgithubも公開にしたので興味ある方はどうぞ↓
https://github.com/rmblankslash/Instagram2TwitterBatch

また、本ツールの実装過程で、Instagram Graph APIを触る機会があり、そこで知ったいくつかの情報をQiitaにまとめた。
こちらもまあ、興味ある方はどうぞ↓
https://qiita.com/rm_blank_slash/items/70e96f14715633fb9966



【Java】アナグラムの生成ロジックの検証(「かとうあい」「あとうかい」のモンテカルロ法による実験)


前回のつづき
自分で作ったアナグラム生成ロジックが
ほんとに正しく機能しているのか確かめるべく
暇つぶしついでに少し実験をしてみた。
実験内容は
「かとうあい」を入力としてアナグラム生成ロジックを適用した後、
「あとうかい」を得られる確率は理論値に近似するか
というくだらないものである。

「かとうあい」と「あとうかい」がアナグラムの関係になっているのは
アナグラムに関して調べたときにWikipediaに載っていた事例であり
なぜか印象に残っているので使わせていただくが
これを採用したことにそれ以上の深い意味はまったくない。




暇つぶしで複素積分の近似計算に挑戦


仕事に飽きたので(最近よく飽きるのだ)眠気覚ましと頭の体操の為に適当な数学の問題に挑戦する。
ノリはこれに近い。
挑戦する問題はこれ↓だ!(Windows標準の数式エディタで書いたので細部がいまいちだがまあいいや)




「虫食算」をプログラミングで解いてみよう


昔とある数学サイトに下記のような虫食算が公開されていた。

         A  
        AB  
       ABC  
      ABCD  
     ABCDE  
    ABCDEF  
   ABCDEFA  
+ ABCDEFAB  
--------------------  
  ALPHABET  


A、B、C、D、E、F、L、P、H、Tがそれぞれ異なる1桁の数字を表しており、
これを上記の筆算で計算して成り立つ10桁の組み合わせを求めよ、
というものである。
通常「虫食算」と言われると

 15  
+3■  
------  
 51  

というふうに、筆算内の一部が「虫食い」状態になっててわからないケースのものを想像するが、
この問題は筆算内の全ての数字が「虫食い」状態になっててわからないという(もはや「虫食い」ですらない)なかなか強烈な問題である。
「虫食算」という時点で分野的には「算数」になるのかもしれないが、
追求していくとなかなか奥が深くて難しい。(少なくとも「算数」しか知らなかった時代の俺ではこれは解けない…)
頑張れば解けるのかもしれないが、ふと、「これを解くプログラムをつくってみよう」と思い立ち、挑戦してみた。
ここでその記録を残す。


 


ストレイテナーと確率10続々(トリビュート12曲12アーティスト全組み合わせをつくろう)


「ストレイテナーと確率10」の関連。
正確に言うと本項は「確率」についてはほとんど語らないが、
関連する話題としてタイトルを付けさせていただいた。

12の曲に12のアーティストが参加するという、ストレイテナートリビュートアルバム「PAUSE」。
このとき、どの曲をどのアーティストが担当するかという、
その組み合わせの総パターン数は12!=479001600である。
”この「4億7千9百万とんで1600」のパターンを全て用意できないか?”というのに
少し挑戦してみたくなったので、その挑戦の記録である。




ストレイテナーと確率10続(テナートリビュートの6問以上正解確率)


続き。
(前半はこちら)

ストレイテナー20周年企画トリビュートアルバム「PAUSE」における、
参加曲&アーティスト12の組み合わせのうち、正解の組み合わせ1つを当てる確率は、
理論値では1/12!=2.09×10-9であることがわかっている。
これは宝くじで1等を当てる確率の約1/50であり、むちゃくちゃ低確率である。
前回の記事では、これをシミュレーションしようとしてプログラムを作ったが、
低スペックマシン故に100億回試行するのに33時間かかるという
絶望的な処理予想時間をたたき出しため、
精度の高い実験は難しいことがわかっている。

しかしトリビュートアルバムの組み合わせクイズには、
6問以上正解者に対する個別プレゼントが用意されている。
直感的にも、「全問正解」に比べて確率が高いことは容易に予想ができる。
本項ではその「6問以上正解」の確率シミュレーションを実施する。
※書いてみて振り返ってみると、
 「ストレイテナー」と銘打ったタイトルの割に、
 中身は思った以上に数学(大した数学の話でもないが)・プログラムチックな話が多くなってしまった。
 なのでそっち系苦手な方はご注意ください。
 (あんまりテナーの話してません、という意味です。)




ストレイテナーと確率10(トリビュートアルバムの正解確率)


ストレイテナー20周年企画のトリビュートアルバム「PAUSE」には、
過去の12の楽曲に対しそれぞれ(テナー本人を含め)12のアーティストが参加する。
公式サイトではこれの組み合わせを当てる参加型クイズ企画が開催されている(2017年9月末まで)。
テナーファンのみなさんは過去の経験やアーティスト間の関係性等により皆予想をたてており、
実際そうした経験則や知識に基づく予想により、闇雲に選ぶよりは正解に近い組み合わせを導けるのは事実であろう。

しかしこれを「同様に確からしい」確率モデルとして評価した場合に、
正解である1つの組み合わせを導ける確率はいかほどのものか?を調査してみたくなった。
(やはり同様に仕事に飽きたので暇つぶしである。夜間はこういうことしてるほうが頭がさえるぜ。)
これは下記のツイートに基づきちょっとだけマジになって本格的に取り組んでみようと思い至ったことによる。



※ちなみに先に訂正しておくと、
 このツイートでは「全組み合わせ数=11!=39916800」と書いているが、
 よく見たらトリビュート曲数は12だったので、そもそも母数の捉え方に誤りがある。
 よって全組み合わせ数は12!=479001600(4億7千9百万とんで1600)が正解である(やべええええええ)

【「ストレイテナーと確率」シリーズリンク集】
ストレイテナーと確率
ストレイテナーと確率2
ストレイテナーと確率3
ストレイテナーと確率4
ストレイテナーと確率5
ストレイテナーと確率6
ストレイテナーと確率7
ストレイテナーと確率8
ストレイテナーと確率9




【Java】Twitter4jを使ってひなっちのおはっちをさーちして遊んだっち!


別にここであえて語るまでもないことだが、「ひなっち」とは、
ロックバンド「ストレイテナー」「Nothing's Carved In Stone」「Fullarmor」「Killing Boy」のベーシスト「日向秀和」氏の愛称である。
(以後、本項では「ひなっち」と記載させていただく)
ひなっちは基本毎日ツイッターで「おはっち」という挨拶を心がけており、
それに対してファン(フォロワー)のアカウントの方から「おはっち」と返信(リプ)をすると、
リプした順番に応じて(大体5位くらいまで?)ひなっちから「1番おはっちおめでとう!」というようなメッセージがもらえる。
フォロワーの方たちはひなっちおはっちいっちばん(一番)を取るべく
気合いをいれてツイッターでまちかまえているのだ。
これはライブ会場で先頭に赴く心情と近いものがあるのだろう(勝手な予想)。

で、この「ひなっちのおはっち」に対して、

  • 一体どれほどの人が「おはっち」しているのか?
  • 最短でどれほどの時間で「おはっち」しているのか?

というのを知りたくなったので、
Twitter4jというJavaのツイッターAPIを使ってひなっちおはっちさーちし、集計してみることにした。
本項ではそのためのTwitter4jのメモと、それをもとに作成した趣味用プログラム「ひなっちおはっちさーち」について記述する。

Twitter4j公式ページ:
http://twitter4j.org/ja/index.html

※ちなみに、Twitter4jを使うにあたっては、大前提で「APPアカウント登録」みたいな作業が必要になる。
ググれば出てくるが、https://apps.twitter.com/に行って、
指示に従って「APPアカウント登録」を行い、認証に必要な以下4つのプロパティ情報を取得のうえ、
Java実行環境と同階層に「twitter4j.properties」という名前で保存する。

oauth.consumerKey=*************************  
oauth.consumerSecret=**************************************************  
oauth.accessToken=**************************************************  
oauth.accessTokenSecret=*********************************************  

あるいは-Dのシステムパラメータで設定するとか、
Java内でConfig設定用クラスを用いて設定するとか、
いくつか方法があるみたいではあるが、とりあえずこれで。


 


【MONOEYES】Run Run連続再生の確率



A Mirage In The Sun - MONOEYES

実はMONOEYES「A Mirage In The Sun」収録の「Run Run」を、俺は2曲持っている。
A Mirage In The Sunを購入するよりも前にiTunesでRun Runだけ購入してしまったのである。
その後になってA Mirage In The Sunを購入・iTunesライブラリにインポートしたので、
結果的に「A Mirage In The Sun」の「Run Run」が俺のiTunesライブラリ上では全く同じ曲が2曲存在していることになっている。

要するにRun Run1曲分余分に金を使っていることになる(あほ)。
Run Runを結構気に入ってしまって、PVばっか見ていたのだが、
あほらしくなったのでRun Runだけ買っちまえ!
⇒めっちゃええやんアルバムごと買っちまえ!
という経緯によるものである。

こういう場合、A Mirage In The Sun全体をシャッフル再生すると、
当然「Run Run」だけはどっかで2回流れることになるが、
そうなるとこの確率はどんなもんなんだ?というのが(懲りずに)また少し気になり始めた。
というのもどうもA Mirage In The Sunシャッフルをしていると、
Run Runが連続する確率が高いように感じたのである。
以前の検証において、ストレイテナーのSILLY PARADEが連続する確率は0.00367%という計算結果が出ているが
これは母体の数がA Mirage In The Sunとは比べ物にならないほど大きい(ストレイテナー全手持ちの曲257曲(当時))からであり
A Mirage In The Sun収録の12曲(実態としてRun Runが1曲かぶってるので俺のiTunesライブラリ上では13曲になっている)を母体数とすれば
ストレイテナーのSILLY PARADE連続よりは確率が高いことは明らかである。
1曲かぶっているRun Runが連続する確率はどれくらいか?
調べてみた。