One数学中心のブログです。C++C++のソートについてまとめてみました。(外部サイト)ソートの難しいところ1次元のソートは簡単ですが、難しいのは多次元のソートです。7というように、月の順序まで変わってしまう可能性があります。日付順のソートをしたい場合は、このようなことが起きてしまうとまずいわけですが、Excelであれば、ソートの優先度を「月、日」の順に設定することができて、上のようなことを回避することができます。C++では、このような優先度別ソートは、sort関数の第3引数を調整すると可能です。sortの第3引数はどのように順序をつけるかを定める関数を指定するところになるのですが、この関数の設定法はいくつか考えられます。今回のケースであれば、重みを付けてソートするのがおすすめです。重みを付けるとは「日」は最大で31にしかならないことを考慮して、M月D日であればM*31+Dという値を考えるということです。自動的に月が日よりも優先されてソートされることになります。ost;}は自作クラスのMyDateの変数をcoutで表示できるようにするもので、ここはソートには直接関係しない部分です。今重要なのは、MyDateクラスのgetValue関数で、ここが重みを付けたデータの和を考えるものとなっています。});でソートを昇順に行っています。上のケースは、M月D日というものでしたが、Y年M月D日といったケースにも応用できます。M*31+Dと設定してソートすればOKです。(12は月の最大値.)ただし、値が大きくなってくると、オーバーフローに気をつける必要がありそうです。「星ってこんなにたくさんあったのか」というほどの満天の星の夜空を見ることができます。今でも、そのときに見えた流れ星は印象に残っています。ところで、次の画像は何に見えるでしょうか。きれいな星々が見えますか?右下はオリオン座でしょうか。結論からいうと、実はこの画像のもとはポテトでした。Oneで扱った内容ですが、これをここでも簡単に説明します。ライフゲームのルールまず、平面上の正方形(セル)がそれぞれ「0か1」という状態を持っていて、0なら白、1なら黒に対応させます。次のセルの状態は、周囲のセルの状態によって決定します。周囲に黒が多い場合や逆に少なすぎる場合、白になります。よいときは、現状を維持するか、黒になります。本題ですが、ライフゲームをカラー画像に適用していくとどんな感じに変化していくのかということを考えたいと思います。当然ながらルールを変更する必要があります。通常のRGBで考えると、状態は(256*256*256)通りあります。「ピクセルの値の和が一定値を超えるもの」が周囲に多すぎたりあるいは少なすぎたりする場合は、RGBの値を減少させます。よい場合は増やします。詳しいルールはあまり重要でないので述べませんが、このようにライフゲームのルールを少し変化させて30サイクルほど繰り返して得られたのが上の画像になります。03:15ポテトが宇宙になった話Tweet広告を非表示にするもっと読むコメントを書く2020-01-12C++で驚いた話プログラミング最近C++をさわりはじめたのですが、すこし驚いたことがあったので、メモを残しておきたいと思います。したがって、for文の中は実行されず、何も表示されないはずです。実行結果を見ると、中身が実行されているので何かおかしいとなったわけです。型が扱える一番大きな数として認識されてしまうようです。break;}と解釈されて実行されたということになります。\]が成り立つというお話ですね。日常生活でp-adic的な現象に出会うことはあまりないかもしれませんが、プログラムの世界だとこのようにp-adicの世界が見え隠れすることがあるようです。型から引き算するときは充分注意しなければならないようです。キャストすれば良いようです。00:15C++で驚いた話Tweet広告を非表示にするもっと読むコメントを書く2020-01-112割引のお米あけましておめでとうございます。たいした話ではないですが、最近少し驚いた話があります。円になって20%割引になって販売されてました。\]が差額になります。普段より、44円割高という結果でした。(2020年に入り始めて、意味もなく、p-adicの計算をしてみました。\]のようなものは入力可能です。高度な数式や、美しさを求めるとLaTeXになるかもしれませんが、簡単な数式であれば、手軽かつ高速に入力できるというメリットがオフィス製品にはあります。(もちろん慣れればですが。)各オフィス製品によって動作が微妙に異なることもあるので、以下ではPowerPointを想定して説明します。「挿入」から「πの数式マーク」を選びます。すると、リボン(いろいろな視覚的なボタンが並んでいる上部のところ)から直感的な数式入力が可能なのですが、しかしこの方法はスピード面では劣る方法です。高速で数式を入力したい場合は、リボンを利用しないキーボード操作による方法をとります。あれば数式モードにしてから、半角で、次の4つのキーを入力します。\]という形に変換されます。漸化式やシグマ記号、積分などの入力もキーボード操作で入力可能です。これらについては、次の動画で簡単にまとめてあります。\frac{x^n}{n!}\]と定義します。割れないと収束しません。