HN 日本語サマリー

← 一覧へ戻る
プログラミング

Mathyで数学を自動化する

Make Math Automatic with Mathy (gmays.com)

11 pointsby gmays1 コメント

要約

開発者が数年間構想していたプロジェクト「Mathy」をリリースしました。Mathyは、Math Academyのような学習プラットフォームを補完し、数学の自動化(定着)に特化した無料のモバイル・ウェブアプリです。学習済みの概念をフラッシュカードのように反復練習することで、記憶を定着させ、より高度な数学への理解を深めることを目指します。FSRSアルゴリズムを利用し、ユーザーの習熟度に応じて練習間隔を調整します。

全文翻訳

Mathyで数学を自動化する 2026年9月12日 数年前から考えていた小さなプロジェクト、Mathyをようやく構築しました。無料であり、iOSまたはウェブで試すのにアカウントは不要です。私は毎日Math Academyを利用していますが、これは数学を学ぶ最良の方法です。しかし、Ankiカードよりも便利で手間のかからない、外出先で数学や苦手分野をドリルできるモバイルフレンドリーな方法を求めていました。また、スクロールする代わりに、何かを構築しているという感覚を得ながら生産的なことをするのに良い方法でもあります。 Mathyの要点は直感に反します。うまくいけば、使う頻度が減ります。例えば、トピックが自動化されるにつれて、推奨される練習セッションの間隔は数週間またはそれ以上に広がる可能性があります(いつでも練習することは可能です)。 なぜMathyか 私はMath Academyの熱烈な支持者であり、彼らの哲学や学習に関するJustinの共有するすべて(ぜひチェックしてみてください)を高く評価しているので、ここでは繰り返しません。私は高度な数学をより得意になりたいのですが、生まれつきの数学の才能があるわけではなく、限界にぶつかります。また、意図的に、できるほど多くの時間と集中力を費やしていません。これは趣味です。長期間にわたって一貫性はありますが、毎日の学習量は非常に少ないです。しかし、それで構いませんし、費やした時間に見合った進歩に非常に満足しています。それは私の生活によく合っています。 そのため、自分に有利になるように、より多くのことを自動化するために数学をドリルする簡単な方法が欲しかったのです。他の制約の中で、自動化が私の限界をどれだけ引き上げることができるか、そしてどれだけ自動化できるかを知りたいと思っています。そして、Math Academyは数学を学ぶ最良の方法ですが、それはレッスン、復習、クイズに焦点を当てており、フラッシュカードのようなドリルには焦点を当てていません。しかし、それには他にも多くのツールがあり、それらを試しました。最も人気があるのはAnkiカードのようでした。そして、Ankiは柔軟なツールですが、数学には理想的ではありませんでした。カードを作成して維持するのも手間がかかりました。他に良い数学の代替手段が見つからなかったので、ここにMathyがあります。 どのようにして生まれたか この種のものを数年前から考えており、特に三角比や公式などを記憶するのに苦労するにつれて、その必要性が高まりました。数学が深くなるにつれて、非常に多様なコンテンツに遭遇します。私は長年にわたって欲しいものをメモしていたので、良い出発点がありました。そして、ある週末についにそれらを製品要件ドキュメントにまとめて、どのようなものになるかを確認しました。気に入りましたが、時間がなかったので、数ヶ月間忘れていました。 並行して、過去1年間、私はエージェントコーディングに深く没頭し、AIの能力、構築の最良の方法、ワークフローの洗練などを学ぶために何億ものトークンを費やしました。しかし、私が取り組んだほとんどのことは非常に複雑で、多くの要素が絡み合っていました。よりシンプルな製品を構築するのはどれくらい「簡単」だろうかと思いました。そこで、これをプロジェクトにすることにしました。 コアアプリは数日で完成しましたが、アプリを使用するうちに、しっくりこない多くの小さな粗いエッジが明らかになり、私が繰り返し改善する必要のあるより深い問題が明らかになりました。そのため、コアアプリはすぐに完成しましたが、ある程度満足できるレベルにするには、多くの方法を試したため、数週間かかりました。まだ多くの粗いエッジがありますが、フィードバックがあればお知らせください。 仕組み Mathyはユーザーにとってシンプルで、既存の学習を補完するように設計されています。学習プログラムにどのように組み込まれるかの例です。 Math Academyのようなもので概念を学び、最初の練習を行います。トピック(学年、コース、またはトピック別)を選択すると、Mathyはユーザーのパフォーマンスに基づいて、いつ再度練習すべきかを通知します(FSRSを使用)。準備ができたら、タイマー付きの「スプリント」チャレンジで自己ベストスコアの更新を目指すことができます。将来は他のユーザーと競えるようになるかもしれません。 Math Academyのような診断や配置はありません。トピックを選択するのはユーザー次第です。そのため、Math Academyで学んだことと連携させることをお勧めします。 次に、Mathyの仕組みについてさらに詳しく共有します。 製品の焦点と制約 制約は役立ちます。そのため、それが何であり、何でないかについて、非常に意図的に考えました。 新しい概念を学ぶのではなく、数学の自動化を構築するためだけのものです。すでに知っていることを練習するためのものです。精神的にできること、主に直接的な想起と、流暢になると約3〜5秒の応答になる短い手順に限られます。 オフラインおよびモバイル最適化:外出先でもアプリを使用でき、コア機能はモバイルアプリ(iPhoneおよびiPadのサポート)でオフラインで動作する必要があります。 最小有効量:目標は毎日練習することではなく、選択したトピックを「自動化」した状態に保つことです。習熟度が高まるほど、練習の必要性は少なくなります。数日または数週間、練習が全く必要ない場合もあります。目標は自動化を維持し、柔軟性を提供することです。したがって、自動化に達したら、数分間の空き時間があるときに定期的なメンテナンスを行うだけです。 プラットフォーム 以前のアプリのようにネイティブiOSアプリ(Swift製)を構築する代わりに、React Nativeを選択しました。これにより、単一のコードベースからiOS(iPhoneおよびiPad)とウェブをサポートできるようになります。もし需要があれば、後でネイティブiOSおよびAndroidアプリに置き換えるかもしれません。それは変換するのが楽しいでしょう。 練習、採点、スケジューリング、進捗保存はすべてローカルで実行され、アカウントやバックエンドの練習は不要です。ヘルプやフィードバックのリクエストを送信するにはインターネット接続が必要です。アプリは無料で利用できます。現在のところ、進捗は練習したデバイスまたはブラウザに残ります。デバイス間で同期されません(現時点では)、アプリを削除したり、ブラウザデータをクリアしたりすると、進捗が失われる可能性があります。 注:オプションのアカウントサポートを追加する予定です。これにより、進捗を保存したり、デバイス間で同期したりできるようになります。また、ミニコンペティションやリーダーボードもサポートしたいと考えています。しかし、これらは未定であり、MVPは前述のようにローカルのみです。 間隔反復アルゴリズム スケジューリングにはFSRSを使用しました。FSRSは、Math AcademyユーザーでもあるJunyao Yeによって作成されました。FSRSプロジェクトからのアルゴリズムの説明はこちらです。FSRSは記憶スケジューリングの状態と、いつレビューすべきかを決定します。Mathy独自のキューポリシーは、再学習、期限切れの課題、新しいターゲット、苦手な教材、メンテナンス、強化、混同しやすさなどをどのように練習に構成するかを決定します。 アプリのホームページには、推奨される練習と今後のレビュー日が示されます。別の「自由にプレイ」オプションでは、複数のモード(デイリー数学、タイムド数学、エンドレス数学、または60秒スプリント)でいつでも練習できます。 問題のプログラムによる生成 前述の焦点の制約のおかげで、これははるかに簡単になりました。決定論的に検証できるものに限定しました。Math Academyには、教材を作成・レビューする素晴らしいチームがありますが、それは高度な数学を教えるのに適しています。しかし、これは自動化アプリであり、新しい教材を教えるものではありません。したがって、決定論的に検証できないものは、このアプリには属しません。固定された事実や公式を含む、キュレーションされた想起ターゲットのバンクと、パラメーター化された問題ファミリーを使用します。これらのファミリーは、チェックされた境界内でバリアントを生成し、AI生成の回答ではなく、決定論的な解答キーを備えています。 直感的な提示と決定論的な検証 Mathyは、各問題を明確なタイポグラフィと数学的フォーマットで提示し、採点を完全に再現可能に保ちます。同じ問題バリアントは、練習キューのシャッフルや順序に関係なく、常に同じ解答キーに解決されます。内部では、すべての想起ターゲットと生成されたバリアントには安定したIDがあります。これにより、学習者が見た正確な問題を特定し、再現することができます。これは、採点、デバッグ、問題レポートへの対応に役立ちます。 入力の正規化 数値入力をタイプする場合、アプリは比較前に提出を正規化します。 空白のトリム 記号の統一 決定論的な数値パーサーのルールで解析 正規化された形式(分数、小数、パーセンテージ、許可されている場合はラジカル)に変換します。 同等の数値値を受け入れる質問の場合、1/2、0.5、50%、2/4などの入力は同じ値に解決できます。特定の表現をテストする質問は、依然として要求できます。