Upgrade to Pro — share decks privately, control downloads, hide ads and more …

夏休みの(最後の)宿題 for JuliaTokyo #12

夏休みの(最後の)宿題 for JuliaTokyo #12

夏休みの(最後の)宿題
JuliaTokyo #12 LT資料

GOTOH Shunsuke

August 31, 2024
Tweet

More Decks by GOTOH Shunsuke

Other Decks in Technology

Transcript

  1. 自己紹介 • 名前:後藤 俊介 • 所属:有限会社 来栖川電算 • コミュニティ:🌟JuliaTokai, 🌟機械学習名古屋,

    ⭐JuliaLangJa, Ruby東海, Python東海, … • 言語:Julia, Python, Ruby, … • SNS等:                  (@antimon2) • SNS等(2):      (@antimon2.jl) • 著書:実践Julia入門
  2. 勉強会の内容 • オンライン開催 ◦ 地方・所属関係なくどなたでも参加OK! ◦ (会場:JuliaLangJa Discord サーバ内ボイスチャンネル) •

    Julia について語り合える場 (定期開催) ◦ 発表 + もくもく会 (相談OK!) ◦ JuliaLangJa の 行動規範 を逸脱しなければ基本なんでも OK!
  3. • JuliaTokyo #11 で Julia コンサ ル のお仕事 報告 前回のあらすじ

    『実践Julia入門』 で 割愛したネタ for JuliaTokyo #11 👆
  4. 2024/06 ~ 2024/09 • Julia コンサル (続き) ◦ Julia コードレビュー

    (引き続き) ◦ コードコンサルティング(アドバイス) (引き続き) ◦ 一部機能実装 ◦ 不具合調査・解決 • ※2024/10~ 続行予定
  5. 出題:infiniteproduct() 関数 • 直積集合を列挙するイテレータ を作ってください! ◦ 引数に複数のイテレータを受け取 る ◦ 無限列を渡してもすべての組合せ

    を列挙できる(理論上) iterator = infiniteproduct( Iterators.countfrom(1), Iterators.countfrom(1) ) for vals in iterator println(vals) end ## (1, 1) ## (1, 2) ## (2, 1) ## (1, 3) ## (2, 2) ## (3, 1) ## :《以下略》
  6. 参考:Iterators.product() 関数 • これも 直積集合を列挙するイテレータ を返す関数 • 無限列を引数に与えると、 後者のイテ レータがいつまで経っても処理されな

    い… iterator = Iterators.product( Iterators.countfrom(1), Iterators.countfrom(1) ) for vals in iterator println(vals) end ## (1, 1) ## (2, 1) ## (3, 1) ## (4, 1) ## (5, 1) ## (6, 1) ## :《以下略、、 (1, 2) は永遠に出てこな
  7. infiniteproduct() 関数(仕様) • 最初の要素からの距離(L1)が近いものから列挙する! ◦ イメージ:   👉 ◦ もちろん3D以上でも 同様 (1,

    1) (2, 1) (3, 1) (4, 1) (5, 1) ⋯ (1, 2) (2, 2) (3, 2) (4, 2) ⋯ ⋯ (1, 3) (2, 3) (3, 3) ⋯ ⋯ ⋯ (1, 4) (2, 4) ⋮ ⋱ (1, 5) ⋮ ⋮ ⋱ ⋮ ⋮ ⋮ ⋱
  8. 解答方法 (1) • InfiniteProductQuiz.jl というリポジトリを用意 • これを clone/実装 してください! ◦

    Base.iterate(::InfiniteProduct[, state]) を 実装すればOK ◦ 実装方法(概要)は、例えば以下を参考に: ▪ 拙著 実践Julia入門 第6章「イテレーション」 ▪ 公式ドキュメント: Iteration
  9. 解答方法 (2) • テストコードの例    👉 • const SKIP = true を

    const SKIP = false に 変更して、テストが通るよう にする
  10. ヒント? • 10年前に CodeIQ 出題経験 • その時の問題を Julia に翻訳したもの •

    ヒント・解説記事を 書いているので それを探せば  👉