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>
むずでょ