tag:crieit.net,2005:https://crieit.net/tags/%E3%81%AF%E3%81%A3%E3%81%B4%E3%82%83%E3%83%BC%EF%BC%88%EF%BC%BE%EF%BD%9E%EF%BC%BE%EF%BC%89/feed 「はっぴゃー(^~^)」の記事 - Crieit Crieitでタグ「はっぴゃー(^~^)」に投稿された最近の記事 2021-05-21T23:50:56+09:00 https://crieit.net/tags/%E3%81%AF%E3%81%A3%E3%81%B4%E3%82%83%E3%83%BC%EF%BC%88%EF%BC%BE%EF%BD%9E%EF%BC%BE%EF%BC%89/feed tag:crieit.net,2005:PublicArticle/17230 2021-05-21T23:50:56+09:00 2021-05-21T23:50:56+09:00 https://crieit.net/posts/f5c26cd5c079ae74e8651f184751c6fb 負の数の剰余(^~^) <p><a href="https://crieit.now.sh/upload_images/8c797790a05a74ca58efc4b7430abcce60a790d4a7c12.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/8c797790a05a74ca58efc4b7430abcce60a790d4a7c12.png?mw=700" alt="20210124shogi2a2b1.png" /></a><br /> 「 👇 AtCode の有志が書いた練習問題解いてたら、次のような細かな話しが載ってたぜ」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://atcoder.jp/contests/apg4b/tasks/APG4b_d">D - 1.03.四則演算と優先順位</a></p> <p><a href="https://crieit.now.sh/upload_images/1be87b2a7c7c88a11b88d0a73c7b84d960a7912cba9b3.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/1be87b2a7c7c88a11b88d0a73c7b84d960a7912cba9b3.jpg?mw=700" alt="E15-XEjUUAEu2WK.jpg" /></a></p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a7917b17230.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a7917b17230.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 いや、それより早く問題を解けだぜ、お父ん」</p> <p><a href="https://crieit.now.sh/upload_images/6caf6840c8b04f280fd7b5f447c040fc60a791a5222ae.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/6caf6840c8b04f280fd7b5f447c040fc60a791a5222ae.png?mw=700" alt="ohkina-hiyoko-futsu.png" /></a><br /> 「 剰余の結果の正負は、割られる数の正負の符号に揃うだけなんじゃないの?」</p> <pre><code> 5 % 3 = 2 // ? -5 % 3 = -2 // ? 5 % -3 = 2 // ? -5 % -3 = -2 // ? </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 つまり こう?」</p> <p><a href="https://crieit.now.sh/upload_images/6df7e423ddd8f505972ee6882247ba6060a793ad7bb05.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/6df7e423ddd8f505972ee6882247ba6060a793ad7bb05.png?mw=700" alt="20210521math64.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a7917b17230.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a7917b17230.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 👆 コードテストでは そうなってるな」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://www.wolframalpha.com/input/?i=-5%3&lang=ja">-5%3</a></p> <p><a href="https://crieit.now.sh/upload_images/ea858ceee519dacf5b5ea825c14cde5c60a79401bf73a.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ea858ceee519dacf5b5ea825c14cde5c60a79401bf73a.png?mw=700" alt="20210521math65.png" /></a></p> <pre><code class="plain"> 5 % 3 = 2 // ? -5 % 3 = 1 // ? 5 % (-3) = -1 // ? -5 % (-3) = -2 // ? </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 Wolfram Alpha とは一部異なるぜ」</p> <p><a href="https://crieit.now.sh/upload_images/6caf6840c8b04f280fd7b5f447c040fc60a791a5222ae.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/6caf6840c8b04f280fd7b5f447c040fc60a791a5222ae.png?mw=700" alt="ohkina-hiyoko-futsu.png" /></a><br /> 「 現場に合わせればいいのよ」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 C++ で負の剰余をそう定義したことと、 Wolfram Alpha が負の剰余をそう定義したことで、<br /> どのような都合の良さを取って、どのような都合の悪さを取らなかったのか 気になるぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a7917b17230.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a7917b17230.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 お父んが練習問題サボってるのが 気になるぜ」</p> <p><a href="https://crieit.now.sh/upload_images/25d8bed9a7104b362a682e7219685c6260a79799dec61.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/25d8bed9a7104b362a682e7219685c6260a79799dec61.png?mw=700" alt="20210521math66a1.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 剰余とは カマボコ のようなものだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a7917b17230.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a7917b17230.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 お父んの空間には 食べ物がよく置いてある」</p> <p><a href="https://crieit.now.sh/upload_images/00f4e03feda2acb6b4d90a4423cd382260a799835927a.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/00f4e03feda2acb6b4d90a4423cd382260a799835927a.png?mw=700" alt="20210521math66a3.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 5 を 3人ずつに分けたら 2 余るぜ」</p> <p><a href="https://crieit.now.sh/upload_images/6caf6840c8b04f280fd7b5f447c040fc60a791a5222ae.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/6caf6840c8b04f280fd7b5f447c040fc60a791a5222ae.png?mw=700" alt="ohkina-hiyoko-futsu.png" /></a><br /> 「 1 を 3人で分けなさいよ。作戦負けよ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a7917b17230.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a7917b17230.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 では、 ー5 を 3人で分けてくれだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/46d4673740bdacb9b5ec65bf03d965fc60a79edd764e3.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/46d4673740bdacb9b5ec65bf03d965fc60a79edd764e3.png?mw=700" alt="20210521math66a4.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 これが、 ー5 を 3人ずつに分けたら ー2 余るという C++の主張だぜ」</p> <p><a href="https://crieit.now.sh/upload_images/6caf6840c8b04f280fd7b5f447c040fc60a791a5222ae.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/6caf6840c8b04f280fd7b5f447c040fc60a791a5222ae.png?mw=700" alt="ohkina-hiyoko-futsu.png" /></a><br /> 「 存在しないカマボコを取り合ってる3人 わらう」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a7917b17230.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a7917b17230.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 自然な解釈のように見えるが……」</p> <p><a href="https://crieit.now.sh/upload_images/38f22d6326eb43a5c7a04fa7fda7ced360a7a0cad9270.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/38f22d6326eb43a5c7a04fa7fda7ced360a7a0cad9270.png?mw=700" alt="20210521math66a7.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 これが、 ー5 を 3人ずつに分けたら 1 余るという Wolfram Alpha の主張だぜ」</p> <p><a href="https://crieit.now.sh/upload_images/6caf6840c8b04f280fd7b5f447c040fc60a791a5222ae.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/6caf6840c8b04f280fd7b5f447c040fc60a791a5222ae.png?mw=700" alt="ohkina-hiyoko-futsu.png" /></a><br /> 「 存在しないカマボコが なぜ突然 現れたの?」</p> <p><a href="https://crieit.now.sh/upload_images/cd98ada17671eafc02e3b0d0505d32cc60a7a35a8335a.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/cd98ada17671eafc02e3b0d0505d32cc60a7a35a8335a.png?mw=700" alt="20210521math66a8.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 もし 6枚のカマボコがあるとして ー5 すれば 1 余るだろ、という理屈だぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a7917b17230.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a7917b17230.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 6枚のカマボコがある、ということにするのは 無理攻めな気がするぜ」</p> <p><a href="https://crieit.now.sh/upload_images/72b5ead74ad03bb162d690fff39c754d60a7a636cc6ee.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/72b5ead74ad03bb162d690fff39c754d60a7a636cc6ee.png?mw=700" alt="20210521math66a9.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 C++ の主張では、<br />  8枚のカマボコを3人で分けたら  2余る。<br />  5枚のカマボコを3人で分けたら  2余る。<br /> ー5枚のカマボコを3人で分けたら ー2余るぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a7917b17230.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a7917b17230.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 そうだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/74b343701f08b9a379e2df036456fd5560a7ab9f2dff6.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/74b343701f08b9a379e2df036456fd5560a7ab9f2dff6.png?mw=700" alt="20210521math67a1.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 Wolfram Alpha の主張を理解するために、らせん状に重ねたカマボコを考えてみようぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a7917b17230.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a7917b17230.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 好きにやってくれだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/798c4c8fdfaed788213a441e6d9dc56760a7acfe40f0f.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/798c4c8fdfaed788213a441e6d9dc56760a7acfe40f0f.png?mw=700" alt="20210521math68.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 5 を 3 で割ったら 2 余るぜ」</p> <p><a href="https://crieit.now.sh/upload_images/9b5127c957383fc1de16af03065c60fc60a7ad9a2b682.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/9b5127c957383fc1de16af03065c60fc60a7ad9a2b682.png?mw=700" alt="20210521math68a1.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 -5 を 3 で割ったら 1 余るぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a7917b17230.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a7917b17230.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 フーム 別に 分かりやすくはならなかったぜ」</p> <p><a href="https://crieit.now.sh/upload_images/6caf6840c8b04f280fd7b5f447c040fc60a791a5222ae.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/6caf6840c8b04f280fd7b5f447c040fc60a791a5222ae.png?mw=700" alt="ohkina-hiyoko-futsu.png" /></a><br /> 「 2個余ってるか、1個足りないか の違いなのよね」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a7917b17230.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a7917b17230.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 じゃ、 5 を -3人で分けてくれだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/c6b4b98736fb5c27a9329eac26720d9c60a7af91f1f42.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/c6b4b98736fb5c27a9329eac26720d9c60a7af91f1f42.png?mw=700" alt="20210521math66a10.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 C++の主張としては、3で割ろうが、ー3で割ろうが、余りは変わらん ということだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a7917b17230.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a7917b17230.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 直観に従うぜ」</p> <p><a href="https://crieit.now.sh/upload_images/882d2e7cabd19c57fcb3bb658360b80a60a7b0d944a2b.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/882d2e7cabd19c57fcb3bb658360b80a60a7b0d944a2b.png?mw=700" alt="20210521math68a2.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 Wolfram Alpha の方は 3で割るか、-3で割るかで 結果が違ってくるぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a7917b17230.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a7917b17230.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 Wolfram Alpha の方は何をやってるか分からん」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://atcoder.jp/contests/apg4b/tasks/APG4b_d">D - 1.03.四則演算と優先順位</a></p> <pre><code class="plain">より正確に言うと、C++の剰余演算子は(A / B) * B + (A % B)とAが等しくなるように定義されており、結果的にAの正負と一致します。 </code></pre> <p><a href="https://crieit.now.sh/upload_images/6caf6840c8b04f280fd7b5f447c040fc60a791a5222ae.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/6caf6840c8b04f280fd7b5f447c040fc60a791a5222ae.png?mw=700" alt="ohkina-hiyoko-futsu.png" /></a><br /> 「 👆 これは何のことを言ってるの?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 みんなで食べたカマボコと、余り を足せば、元のカマボコに戻るだろ、という式だぜ。<br /> 具体的な数を入れて 計算してみようぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/513597b504dfff2f1d7d4469b717eff960a7b977204c8.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/513597b504dfff2f1d7d4469b717eff960a7b977204c8.png?mw=700" alt="20210521math69.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 図で描けば こうだな。<br /> 割り算が小数点切捨てになってるのが コンピューターの独特な所だぜ」</p> <pre><code class="plain">A = 5 B = 3 ( A / B ) * B + ( A % B ) = ( 5 / 3 ) * 3 + ( 5 % 3 ) = ( 1 ) * 3 + ( 2 ) = 4 + ( 2 ) = 5 </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 合ってるな」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a7917b17230.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a7917b17230.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 他のパターンもやれだぜ」</p> <pre><code class="plain">A = -5 B = 3 ( A / B ) * B + ( A % B ) = ( -5 / 3 ) * 3 + ( -5 % 3 ) = ( -1 ) * 3 + ( -2 ) # -5 % 3 は定義から -2 = -3 + ( -2 ) = -5 </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 合ってるな」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a7917b17230.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a7917b17230.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 まだ2パターン残ってるぜ」</p> <pre><code class="plain">A = 5 B = -3 ( A / B ) * B + ( A % B ) = ( 5 / -3 ) * -3 + ( 5 % -3 ) = ( -1 ) * -3 + ( 2 ) # -5 % 3 は定義から 2 = 3 + ( 2 ) = 5 </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 合ってるな」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a7917b17230.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a7917b17230.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 らすいち」</p> <pre><code class="plain">A = -5 B = -3 ( A / B ) * B + ( A % B ) = ( -5 / -3 ) * -3 + ( -5 % -3 ) = ( 1 ) * -3 + ( -2 ) # -5 % -3 は定義から -2 = -3 + ( -2 ) = -5 </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 合ってるな」</p> <p><a href="https://crieit.now.sh/upload_images/6caf6840c8b04f280fd7b5f447c040fc60a791a5222ae.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/6caf6840c8b04f280fd7b5f447c040fc60a791a5222ae.png?mw=700" alt="ohkina-hiyoko-futsu.png" /></a><br /> 「 Wolfram Alpha の方も 見ておきましょう!」</p> <pre><code class="plain">A = -5 B = 3 ( A / B ) * B + ( A % B ) = ( -5 / 3 ) * 3 + ( -5 % 3 ) = ( -1 ) * 3 + ( 1 ) # -5 % 3 は定義から 1 = -3 + ( 1 ) = -2 </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 合わないぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a7917b17230.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a7917b17230.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 Wolfram Alpha がなぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 むむむむ……」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://en.wikipedia.org/wiki/Modulo_operation">Modulo operation</a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 なんてこった。 負の剰余には、2種類ぐらい 良い方法があるらしいぜ。<br /> <strong>ユークリッド除法</strong> と、 <strong>ドナルド・クヌースの切り下げ除算</strong>」</p> <p>📖 <a target="_blank" rel="nofollow noopener" href="https://torstencurdt.com/tech/posts/modulo-of-negative-numbers/">Modulo of Negative Numbers</a></p> <pre><code class="plain">mod(a, n) = a - n * floor(a / n) </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 ドナルド・クヌースのやり方を真似てみるか」</p> <pre><code class="plain">A = -5 B = 3 A - B * floor( A / B ) = -5 - 3 * floor( -5 / 3 ) = -5 - 3 * -2 # 負の無限大の方へ切り下げる = -5 + 6 = 1 </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 あひゃあ! 1 だ!」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a7917b17230.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a7917b17230.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 1 だぜ!」</p> <p><a href="https://crieit.now.sh/upload_images/6caf6840c8b04f280fd7b5f447c040fc60a791a5222ae.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/6caf6840c8b04f280fd7b5f447c040fc60a791a5222ae.png?mw=700" alt="ohkina-hiyoko-futsu.png" /></a><br /> 「 他のパターンも見てみましょう!」</p> <pre><code class="plain">A = 5 B = -3 A - B * floor( A / B ) = 5 - -3 * floor( 5 / -3 ) = 5 - -3 * -2 # 負の無限大の方へ切り下げる = 5 - 6 = -1 </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 なんと ー1 だぜ!」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a7917b17230.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a7917b17230.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 Wolfram Alpha は ドナルド・クヌースの切り下げ除算を使っているのかだぜ?<br /> らすいち も見てみようぜ!」</p> <pre><code class="plain">A = -5 B = -3 A - B * floor( A / B ) = -5 - -3 * floor( -5 / -3 ) = -5 - -3 * 1 # 負の無限大の方へ切り下げる = -5 - -3 = -2 </code></pre> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 ー2 だな」</p> <p><a href="https://crieit.now.sh/upload_images/6caf6840c8b04f280fd7b5f447c040fc60a791a5222ae.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/6caf6840c8b04f280fd7b5f447c040fc60a791a5222ae.png?mw=700" alt="ohkina-hiyoko-futsu.png" /></a><br /> 「 何がいいのか 分かんないわね!」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a79240795ba.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 あー、 C++ の方法だと 計算の途中で 自己言及 があるが、<br /> ドナルド・クヌースの方は 自己言及 がないんで、 好きな人は好きな定義だな」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a7917b17230.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a7917b17230.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 しかし お父んの らせんのカマボコ では 何も納得できない……」</p> むずでょ