Ruby

高校への数学12月号(高数オリンピック)

(n-1)人目までの得票結果に対して、n人目の得票結果を反映させる、というのがミソです。これを一気にn人の得票パターンを網羅的に計算させようものなら、n=8くらいからPCのメモリが不足してしまい強制終了になります。実際、自分は最初にそのように素朴なコ…

文字列内の複数パターン置換をHashで行う

半年くらい前に自作したスクリプトに組み込んだ処理なのに、どこのサイトでやり方を調べたのか忘れてしまった。たぶん、「Ruby 置換 Hash」とかで調べて、なるほどふむふむと思いながら実装したんだろう、String#gsub(pattern, hash) とすることで複数置換が…

2023年6月号大問5

証明問題なので、この記事でやることはただの実験に過ぎません。 によって数列 を定めるとき次式が成り立つことを示せ、というものです。 さて実験してみましょう。二項係数の計算部分については以下のサイトを参考にしました。 tsujimotter.hatenablog.com …

2023年5月号学コン大問2

手計算でやると数え上げが面倒で、漏れがあるか心配だったので、Rubyで検算用のスクリプトを書きました。コードは別に難しくなく、答えは一瞬で出ます。使うメソッドとしては Array#permutation くらい。あとはテクニックとして 5桁の数字を構成するときにい…

Rubyで特定の時間刻みの配列を取得する

%Y%m%d%H%M形式の日付を与えて、開始日時と終了日時の間を特定の時間刻みで区切った配列を返すスクリプトをRubyで書きました。while文は滅多に使わないのでちょっと新鮮です。今回は10分刻みを例として書いてみました。もちろん、5分刻みとかもできます。そ…

yyyymmdd形式で8個の数字が2種類の数字だけで表される日

中学時代の塾の数学講師がこんなツイートをしていました。0001/01/01 から 9999/12/31 の間に,8個の数字が2種類の数字だけで表される日は全部で643回あり,今日はその391番目にあたります。8個の数字が1種類の数字だけで表される日は 1111/11/11 の1回だけ…