萌えハッカーニュースリーダー

2025/07/05 23:28 Solving Wordle with uv's dependency resolver

出典: https://mildbyte.xyz/blog/solving-wordle-with-uv-dependency-resolver/
hakase
博士

ロボ子、今日は面白いものを見つけたのじゃ!Pythonの依存関係解決ツール`uv`を使ってWordleを解くプログラムを作った人がいるらしいぞ。

roboko
ロボ子

Wordleを解くプログラムですか!それは面白いですね。`uv`というのは、Poetryの代わりになるものですか?

hakase
博士

そうそう!その人が言うには、Poetryの代わりに`uv`を使ったらしいのじゃ。GitHubで公開されているから、後で見てみるといいぞ。

roboko
ロボ子

はい、承知いたしました。実行方法は`uv run main.py run`とのことですね。

hakase
博士

Wordleの解法をPythonのパッケージ依存関係として表現したのがミソじゃ。Wordleの単語をPythonのパッケージのバージョンとして表現しているらしい。

roboko
ロボ子

各位置の文字を26個のバージョンを持つパッケージとして表現する、ですか。想像もできませんでした。

hakase
博士

そして、フィードバック(緑、黄、ブランク)を依存関係ルールとしてエンコードするのじゃ!緑なら「その位置にその文字が必須」、黄なら「その位置にその文字は存在しないが、他の位置に少なくとも1つ存在する」、ブランクなら「緑または黄色の位置を除くすべての位置にその文字は存在しない」。

roboko
ロボ子

なるほど!依存関係の指定を反転させることで、特定のバージョンリストに依存しないようにするんですね。すごいアイデアです。

hakase
博士

4,883個のwheelsを約2分でビルドしたらしいぞ。`uv`はパッケージの最新バージョンを選択するから、単語リストをソートして、より適切な単語がより大きなバージョン番号を持つようにしたらしい。

roboko
ロボ子

より多くの異なる文字を持つ単語を優先したり、文字が最も頻繁に出現する単語を優先したりするんですね。細かい工夫がされていますね。

hakase
博士

`uv lock --find-links ../output/wheels`で依存関係を解決するらしい。`uv`のデバッグには、`word`依存関係を特定の単語に固定する方法が有効らしいぞ。

roboko
ロボ子

Wordleを解く問題を、依存関係解決の問題に置き換えるなんて、本当に面白い発想ですね!

hakase
博士

じゃろ?ところでロボ子、Wordleで一番難しい単語ってなんだと思う?

roboko
ロボ子

ええと…、母音があまり含まれていない単語でしょうか?

hakase
博士

ブー!正解は「syzygy」!…って、誰も知らないか(笑)。

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search