Skip to content
yowasou edited this page Aug 13, 2023 · 36 revisions

CodeKata2(CodeKataKata)、もくもく等でやることに困った時にここを見ましょう。

やったものはこちらに → ネタ帳(済み)


タイトル

サブタイトル

URLなど

基本フォーマット。読みやすくするために記法を統一したほうが良いかなと。 その他補足情報など。


小学生がひらめきで解く算数の問題を大人げなくコンピュータで解く!

8. 次の計算をしてください。

1+2+3+・・・+9+10+3×1+3×2+3×3+・・・+3×9+3×10+5×1+5×2+5×3+・・・+5×9+5×10+・・・+17×1+17×2+17×3+・・・+17×9+17×10+19×1+19×2+19×3+・・・+19×9+19×10出典

9. 1221や75957のように、数字の並びが左右対称な整数を考えます。 44444のように、すべて同じ数字が並ぶものも左右対称と考えます。 このとき、次の問に答えなさい。出典

9.1 4ケタの整数で、数字の並びが左右対称なものは何個ありますか。

9.2 5ケタの整数で、数字の並びが左右対称ではないものは何個ありますか。

10. ある整数Aは3の倍数で、しかも奇数です。 11573をAで割ると23余り、6940をAで割ると10余ります。 このような整数Aをすべて求めなさい。出典

11. 1、3、5、10、11、12、13、・・・・、73、75、81、83、・・・・、134、135、136、・・・・ というように、1、3、5のいずれかの数字が入っている整数を小さい順に並べました。 このとき、次の問いに答えなさい。出典

11.1 2桁の整数は全部で何個ありますか。

11.2 201は1から数えて何番目に出てくる整数ですか。

11.3 1から数えて2014番目に出てくる整数は何ですか。

12. 8ケタの整数 12345678 に 下のような操作を 100回 続けて行ってできる整数はいくつですか。出典

【操作】

左から 1,2,3,4,5,6,7,8 番目の数字をそれぞれ、

左から2,4,6,8,1,3,5,7 番目に移す。

つまり、ABCDEFGH をEAFBGCHD にする。

1回目は、12345678 → 51627384


正規表現苦手なお前らへ

問題 Perl、Rubyの最新版でサポートしている正規表現を利用して、下記の条件にマッチするようにア、イ、ウを埋めて下さい。
正規表現: “123456″ =~ /([0-9]+ア)/
条件: $1 == “1″
正規表現: “123456″ =~ /(イ[0-9]+ア)([0-9]+)/
条件: $1 == “23456″

(リンク元より一部抜粋)
カレントディレクトリに HTML ファイル test.html があります。
このファイルから title 要素の内容を抜き出して表示する Ruby プログラムを書きなさい。
test.html は HTML 文法に沿っており、必ず 1 個の title 要素を含むと仮定して構いません。
なお、タグの名前にアルファベットの大文字と小文字が使える点、および要素の内容に改行文字が含まれる可能性がある点に注意すること。

(リンク元より抜粋)

算数オリンピックの過去問を分類する

算数オリンピックや中学入試の過去問をプログラミングで解けそうな問題とそうでない問題に分類する。機械学習とか使う気がする。 原理としてはスパムフィルタのイメージ。


値札分割メソッド(split_price)

qiitaの記事"【Rubyプログラミング問題】値札分割メソッド(split_price)を作成してください "より


両替

最小限の数で表現

  • 金額を入力すると、お札/硬貨で表現してくれる
    > 17318
    10000*1
    5000*1
    1000*2
    100*3
    10*1
    5*1
    1*3

効率的な支払い方法

  • (応用)金額と商品金額を入力すると、おつりをもらったあとの数が最小になるような支払い方法を教えてくれる
    > 17318 1527
    1000*2
    5*1
    1*2

--

マイナンバーのチェックディジットを計算/確認しよう

マイナンバーは12桁の数値ですが、11桁の住民票番号+チェックディジットで成り立っています。 法律 にはその計算方法が載っています。

第五条  令第八条の総務省令で定める算式は、次に掲げる算式とする。
算式
 11―(n=1(シグマ)11(Pn×Qn))を11で除した余り)
 ただし、(n=1(シグマ)11(Pn×Qn))を11で除した余り≦1の場合は、0とする。
算式の符号
 Pn 個人番号を構成する検査用数字以外の十一桁の番号の最下位の桁を1桁目としたときのn桁目の数字
 Qn 1≦n≦6のとき n+1 7≦n≦11のとき n―5

マインスイーパー

インターフェースはブラウザでもwhile getsでもncursesでもRuby/SDLでも。最低限、ゲームを生成して、マスをクリックしたら周りの地雷数が表示される、までできればOKとすれば2時間で十分できるはず。


何らかの検索Webシステム

フォームに入力したらサーバー側で何か検索処理をし、一致したもの一覧を表示する、というシステムを作る。制約として、自分がよく知らない、何らかの使ってみたい要素を入れること。Railsに初チャレンジとか、Twitter APIを使ってみるとか、使ってみたいgemを無理やり盛り込むとか。データは自分で決めてよいが、思いつかなければhttps://github.com/namakesugi/forgery_ja を使う。


何らかのデータセット生成プログラム

自分の好きな何か(本とか音楽とか歴代東映戦隊とか)とそれのデータソースを決め(AmazonとかWikipediaとか)、それを自分がモデリングしたデータベースに自動で挿入するプログラムを作る。時間の限り自動化せよ。モデリングやクローラー、テキスト処理などの練習に。あとで↑の検索システムに繋げるのもよし。


しりとりゲームを作ろう!

仕様案1

  • 1行に1個の単語(「ひらがな」でつづる)を格納したテキストファイルを、最初の「辞書」として用意する。ゲーム中にプレイヤーが入力した単語は「辞書」に追加され、プログラムが使用可能な語彙がどんどん増える。
  • プログラムはランダムに1個の単語を選ぶ。それを表示して「しりとり」開始。プレイヤーはしりとりが続くように単語を入力する。あるゲーム中、一度使用した単語は使えない。
  • 答えが見つからなかったり、最後が「ん」ならゲーム終了。

1時間で完成させられるか微妙な気がします...

仕様案2

  • 最初の単語は「しりとり」。プログラムはランダムに1個の単語を「生成」する。一度使用した単語は使えない。 (edited)

仕様案3

  • 一人しりとり。
  • 入力した単語を保存しておき、同じ単語を使うor"ん" で終わったら終了。
  • 次の単語を入力するのに制限時間を設ける(だんだんと制限時間が短くなっていくとゲーム性が高まるかも)
  • 一番長く単語が連なった人の勝ち
  • ランキング機能を付けてもいいかもしれない

言語処理100本ノック

http://www.cl.ecei.tohoku.ac.jp/nlp100/#


オシャレWebサービスを作ってみよう

機能より見た目!

非デザイナーエンジニアが一人でWebサービスを作るときに便利なツール32選

プログラマはデザインが苦手と言われています。

↑に紹介した記事を参考に、"機能より見た目を重視した"Webサービスを作ってみましょう。


今月の小テスト(制限時間5分)

(ネタじゃなくて、CodeKata2のサブみたいなのの提案です) お題を出して、制限時間5分でどこまでできるか?っていうものです。
タイマーできっちり5分測って答えあわせをします。(なのでトータル10分か。)
他の勉強会からヒントを得ました。HmrbならLTの前くらいの時間かな。
お題は、5分あれば十分すぎる課題を選ぶのがポイント。
もちろん上級者は5分あればRSpecまで書いてしまうしエレガントな解法を考えたり。
ネタはあらかじめ選んでも良いし、その日に出た質問から選んでも良い。
答え合わせ時間は、paiza.Io にhmrbIDで非公開投稿したものを映して実行します。


Slack API使ったアイディア実装

slackでなんか出来ないかな〜

10分コーディング! Rubyでつくる Slack時報

https://moneyforward.com/engineers_blog/2015/02/18/slack-timer/

ネタ勝負です!!


name-index

(西脇.rb & 東灘.rb Ruby リファクタリング Dojoより)

カタカナの配列をア段の音別にグループ分けしてください。 例: ['キシモト', 'イトウ', 'カネダ'] => [ ['ア', ['イトウ']], ['カ', ['カネダ', 'キシモト']] ] 詳しくは以下のGitHubリポジトリを参照してください。 https://github.com/JunichiIto/name-index


bonus-drink

(西脇.rb & 東灘.rb Ruby リファクタリング Dojoより)

空き瓶3本で新しい飲み物を1本プレゼントしてくれる店があります。100本買うと全部で何本の飲み物を飲めるでしょうか? 例: 3本購入 => 4本飲める、11本購入 => 16本飲める、100本購入 => ??? 詳しくは以下のGitHubリポジトリを参照してください。 https://github.com/JunichiIto/bonus-drink

Clone this wiki locally