疑似乱数を発生させるrand
randは疑似乱数を発生させるメソッド。
今回はrandメソッドを使ってツイートの定型文に変化をつける。
目次
randを使う理由
レース(レガッタ)情報をツイートする
ローイングファンではボートレース(レガッタ)の結果をツイートしている。
Twitterライブラリを利用したツイートのしかたは前に書いた。
Twitterライブラリ
https://rowingfan.hatenablog.jp/entry/2018/05/22/120000
レース結果のツイートは次のようなもの。
<2018>ボート全日本軽量級 結果
— ローイングファン (@rowing_fan) 2018年5月20日
女子舵手なしクォドルプル
決勝 05/20 13:05
1着 仙台大学
2着 日本体育大学
3着 東京外国語大学
4着 富山国際大学
2018 全日本軽量級(ボート) 結果
— ローイングファン (@rowing_fan) 2018年5月20日
男子エイト
決勝 05/20 13:30
1着 仙台大学A
2着 明治大学
3着 法政大学
4着 慶應義塾大学A
似たような内容のツイートはTwitterのアカウント停止処分をうける?
はじめの頃は表題部分を定形にしていた。そうしたところ何度もアカウント停止処分を受けた。
どうやら書式が同じだと内容は違っていてもスパム扱いされるようだ。
(すべて次のような同じ文の表題をつけるとスパム扱いされる?)
2018 ボート全日本軽量級 結果
そこで次の例のように語順を変えた表題をいくつか用意して、ツイートごとに不規則に利用するよう改良した。
例(実際はもっと種類がある)
2018 全日本軽量級(ボート) 結果
2018 ボート全日本軽量級 結果
ボート全日本軽量級2018の結果
改良してからアカウント停止をうけていない。
randの使い方
randのリファレンスマニュアル
randのリファレンスマニュアルは次のとおり。
Karnelモジュール > rand
https://docs.ruby-lang.org/ja/latest/method/Kernel/m/rand.html
書式
rand(max) rand(range)
引数max,rangeには数値が入る。
max、rangeが整数の場合は整数が返ってくる。
例
#次の2つとも 0,1,2 いずれかの整数を不規則に返す p rand(3) p rand(0..2)
randを使ったコード
テストコードを書く。
randtest.rb
class TweetTitle def initialize @titles = [ "2018 全日本軽量級(ボート) 結果", "2018 ボート全日本軽量級 結果", "ボート全日本軽量級2018の結果" ] end def tweet_title puts @titles[rand(@titles.size)] end end 5.times do TweetTitle.new.tweet_title end
コードの説明
- TweetTitleクラスをつくる
times
メソッドでtweet_titleメソッドを繰り返す(今回は5回)
実行結果
ターミナル/PowerShellを使ってコードを実行する。
ruby randtest.rb
実行結果
2018 ボート全日本軽量級 結果 ボート全日本軽量級2018の結果 2018 全日本軽量級(ボート) 結果 ボート全日本軽量級2018の結果 2018 全日本軽量級(ボート) 結果
表題が不規則に出力された。
この仕組を使って不規則な表題をつぶやいている。