| Home |
2010.02.06
10秒で覚えられて計算がバツグンに速くなる方法
■補数って?
10、100,1000……から、ある数を引いた残りの数のことを(基数の)補数というが、今回の主役は、
それよりも1少ない、いわゆる減基数の補数(注)である。
10進数だと、ぶっちゃけ足して(各桁が)9になる数(の組)だ。
具体例を出すと「9−1=8」だから、8は1の補数である。いうまでもないが、1は8の補数である。
■まずは「おつり算」
日常生活で最も多い計算は「おつりを計算すること」だろう。
これは補数を使った計算の第一歩にちょうどいい。
速算に 10000−3452=?
を計算することは、3452の基数の補数をもとめることだけれど、
まず減基数の補数を求めちゃえばいい。そしてこれは次の方法で反射的にできる。
減基数の補数は基数の補数よりも1だけ少ないということを心に留めておくと、
次の表を覚えておく(というより反射的に出るようにしておく)だけで、
「繰り下がり」なんかに希少で貴重なワーキング・メモリを費やさずに、反射的に計算ができる。
0 なら 9
1 なら 8
2 なら 7
3 なら 6
4 なら 5
5 なら 4
6 なら 3
7 なら 2
8 なら 1
9 なら 0
表の中身は、なんてことない「足して9になる数字の組」なので覚えるまでもないが、反射的に出るようにしておくのが、ポイント。
■実際の計算
9999 + 1 =10000
3452
↓↓↓↓(反射的に置き換え)
6547(減基数の補数) + 1 = 6548(基数の補数)
何桁の引き算だろうと、最も上の位から十の位までは、自動的に置き換えることで済む。
一の桁だけ、プラス1することを忘れなければよい。
さらに良いことは、上の桁から計算ができるので、口頭で数字が与えられた時でも、数字を読み上げられているさなかに計算が開始できるので、数字を一旦アタマの中に蓄えなくても計算できる。
おかげで、これまたワーキング・メモリを消費しなくて済む。
100000000000000000
43512809838428374
−)
56487190161571626
こんな桁数が多くても大丈夫である。
最後の一の位だけ、忘れず1プラスしておくこと。
というより「999……9」から始めたんだ、ということだけは忘れずにいること。
■引き算と足し算を相互に変換する
「おつり算」を反射的にできるようになることは、補数を反射的に計算できることである。
実は、補数は、引き算を足し算にするのに用いられる。
オーバーフロー(桁あふれ)を無視すれば、ある数で足し算することは、その基数の補数を引き算することに等しい。
例を示そう。
38+99
=38+(100−1)
=100+38−1
=100+37
=137
ステップを細かく分けているが、99なら100を足しておいて1引く、なんてことは誰でも思い付くだろう。ここで1は99の基数の補数である。
38+86
=38+(100−14)
=100+38−14
=100+24
=124
やってることは同じ。頭の使い方は、「38+86だと、どしたって100超えるよな。下二桁は、86→(補数に変換)→14を足しときゃいいか。100と24だ。」といった感じである。
(注)
基数の補数を使え、と書いてあるものがあるが、却って鬱陶しい。なぜそろばんの珠は、10から9を表すものに「進化」したのか、考えてみるといい。
なお基数をもっとちゃんと定義しとくと、
b 進法において、自然数 a を表現するのに必要な最小の桁数を n としたとき、
* bn − a を「b 進法における a に対する基数の補数(b の補数)」
* bn − a − 1 を「b 進法における a に対する減基数の補数(b - 1 の補数)」
という。
例えば、10進法において、自然数 61 に対する基数 10 の補数は 102 − 61 = 39、減基数の補数は、102 − 61 -1 =38。つまり「足して9になる数」に各桁を置き換えることは、減基数の補数を求めているのである。
2進法において、自然数 100102( = 1810) に対する基数 2 の補数は 25 − 18 = 11102( = 1410) 、減基数の補数は011012と1と0を入れ替えた数になる。
計算術のようなものは、ほとんどこの本に網羅されている。
速算に特化したのがこれ。
(関連記事)
「足して9になる数字」が四則演算すべての検算を驚くほど加速する理由 読書猿Classic: between / beyond readers

読書猿Classic 数学にはネイティブはいない:「語学としての数学」完全攻略、その後

……ネット上の資源、計算力をつける本、大学以降用のブックリスト
読書猿Classic 数学にはネイティブはいない:「語学としての数学」完全攻略=風景+写経アプローチ

10、100,1000……から、ある数を引いた残りの数のことを(基数の)補数というが、今回の主役は、
それよりも1少ない、いわゆる減基数の補数(注)である。
10進数だと、ぶっちゃけ足して(各桁が)9になる数(の組)だ。
具体例を出すと「9−1=8」だから、8は1の補数である。いうまでもないが、1は8の補数である。
■まずは「おつり算」
日常生活で最も多い計算は「おつりを計算すること」だろう。
これは補数を使った計算の第一歩にちょうどいい。
速算に 10000−3452=?
を計算することは、3452の基数の補数をもとめることだけれど、
まず減基数の補数を求めちゃえばいい。そしてこれは次の方法で反射的にできる。
減基数の補数は基数の補数よりも1だけ少ないということを心に留めておくと、
次の表を覚えておく(というより反射的に出るようにしておく)だけで、
「繰り下がり」なんかに希少で貴重なワーキング・メモリを費やさずに、反射的に計算ができる。
0 なら 9
1 なら 8
2 なら 7
3 なら 6
4 なら 5
5 なら 4
6 なら 3
7 なら 2
8 なら 1
9 なら 0
表の中身は、なんてことない「足して9になる数字の組」なので覚えるまでもないが、反射的に出るようにしておくのが、ポイント。
■実際の計算
9999 + 1 =10000
3452
↓↓↓↓(反射的に置き換え)
6547(減基数の補数) + 1 = 6548(基数の補数)
何桁の引き算だろうと、最も上の位から十の位までは、自動的に置き換えることで済む。
一の桁だけ、プラス1することを忘れなければよい。
さらに良いことは、上の桁から計算ができるので、口頭で数字が与えられた時でも、数字を読み上げられているさなかに計算が開始できるので、数字を一旦アタマの中に蓄えなくても計算できる。
おかげで、これまたワーキング・メモリを消費しなくて済む。
100000000000000000
43512809838428374
−)
56487190161571626
こんな桁数が多くても大丈夫である。
最後の一の位だけ、忘れず1プラスしておくこと。
というより「999……9」から始めたんだ、ということだけは忘れずにいること。
■引き算と足し算を相互に変換する
「おつり算」を反射的にできるようになることは、補数を反射的に計算できることである。
実は、補数は、引き算を足し算にするのに用いられる。
オーバーフロー(桁あふれ)を無視すれば、ある数で足し算することは、その基数の補数を引き算することに等しい。
例を示そう。
38+99
=38+(100−1)
=100+38−1
=100+37
=137
ステップを細かく分けているが、99なら100を足しておいて1引く、なんてことは誰でも思い付くだろう。ここで1は99の基数の補数である。
38+86
=38+(100−14)
=100+38−14
=100+24
=124
やってることは同じ。頭の使い方は、「38+86だと、どしたって100超えるよな。下二桁は、86→(補数に変換)→14を足しときゃいいか。100と24だ。」といった感じである。
(注)
基数の補数を使え、と書いてあるものがあるが、却って鬱陶しい。なぜそろばんの珠は、10から9を表すものに「進化」したのか、考えてみるといい。
なお基数をもっとちゃんと定義しとくと、
b 進法において、自然数 a を表現するのに必要な最小の桁数を n としたとき、
* bn − a を「b 進法における a に対する基数の補数(b の補数)」
* bn − a − 1 を「b 進法における a に対する減基数の補数(b - 1 の補数)」
という。
例えば、10進法において、自然数 61 に対する基数 10 の補数は 102 − 61 = 39、減基数の補数は、102 − 61 -1 =38。つまり「足して9になる数」に各桁を置き換えることは、減基数の補数を求めているのである。
2進法において、自然数 100102( = 1810) に対する基数 2 の補数は 25 − 18 = 11102( = 1410) 、減基数の補数は011012と1と0を入れ替えた数になる。
計算術のようなものは、ほとんどこの本に網羅されている。
計算がらくになる実用数学 (1963/10) 波多 朝 商品詳細を見る |
速算に特化したのがこれ。
速算術入門 (1974/06) 波多 朝 商品詳細を見る |
計算力を強くする (ブルーバックス) (2005/08/21) 鍵本 聡 商品詳細を見る |
暗算の達人 (2007/02/28) アーサー・ベンジャミンマイケル・シェルマー 商品詳細を見る |
(関連記事)
「足して9になる数字」が四則演算すべての検算を驚くほど加速する理由 読書猿Classic: between / beyond readers
読書猿Classic 数学にはネイティブはいない:「語学としての数学」完全攻略、その後
……ネット上の資源、計算力をつける本、大学以降用のブックリスト
読書猿Classic 数学にはネイティブはいない:「語学としての数学」完全攻略=風景+写経アプローチ
普通の計算を補数って言葉を使って難しく説明してるだけじゃない??
頭で計算するときみんなこうやって計算してるんじゃ
頭で計算するときみんなこうやって計算してるんじゃ
2010/02/06 Sat 18:55 URL [ Edit ]
らっく
ぼくが、38+86をするときは、
100から86をひいて14を
38からまたひいて、24
それで124
と頭の中で計算してます。
100から86をひいて14を
38からまたひいて、24
それで124
と頭の中で計算してます。
2010/02/06 Sat 19:08 URL [ Edit ]
(-_-;)
いや、
普通に、
9-3=6
9-4=5
9=5=4
10-2=8
で、6548 だろ。
まぁ、パブロフでもいいんだけどさ。
普通に、
9-3=6
9-4=5
9=5=4
10-2=8
で、6548 だろ。
まぁ、パブロフでもいいんだけどさ。
2010/02/06 Sat 21:22 URL [ Edit ]
なんか賢くなった気がする〜
2010/02/07 Sun 01:11 URL [ Edit ]
計算をよくやる環境にいると、
3桁x2桁くらいなら暗算するまでもなく答えが思い浮かぶから困る
3桁x2桁くらいなら暗算するまでもなく答えが思い浮かぶから困る
2010/02/07 Sun 02:39 URL [ Edit ]
38+99なら
38から1貰って99に足してるな。
つまり、37+100。
あとは345÷5とかは分子分母2倍してる。
これは、390÷10
38から1貰って99に足してるな。
つまり、37+100。
あとは345÷5とかは分子分母2倍してる。
これは、390÷10
2010/02/07 Sun 03:08 URL [ Edit ]
イマイチ利点がわからなかった
2010/02/07 Sun 08:49 URL [ Edit ]
名無しのお兄ちゃん
確かに俺一桁目から数えていたわ
二個目の足し算と引き算を相互に変換する
は二桁ぐらいなら記憶してるから
計算するまでもない
普通に足して計算出来るだろこれぐらいなら
二個目の足し算と引き算を相互に変換する
は二桁ぐらいなら記憶してるから
計算するまでもない
普通に足して計算出来るだろこれぐらいなら
2010/02/07 Sun 09:22 URL [ Edit ]
ぽて
これはすごい!
計算部分の説明がうまい。使われている用語と文章は、ぼくの頭ではさっぱりだったのだけど、計算部分は分かった。
38+86は、ぼくの場合は
40+86-2
として計算してるかなあ。くせですね。
計算部分の説明がうまい。使われている用語と文章は、ぼくの頭ではさっぱりだったのだけど、計算部分は分かった。
38+86は、ぼくの場合は
40+86-2
として計算してるかなあ。くせですね。
こんなんみんな普通にやってることやろ
ちがうの?
ちがうの?
2010/02/07 Sun 12:05 URL [ Edit ]
読むのに10秒以上かかるじゃん
2010/02/07 Sun 12:08 URL [ Edit ]
せっかくなので5×2=10の話も是非!
2010/02/07 Sun 14:10 URL [ Edit ]
うーん
意味がわからん(´・ω・`)
意味がわからん(´・ω・`)
2010/02/07 Sun 14:40 URL [ Edit ]
なんでわざわざ難しく書いてんの?
2010/02/07 Sun 19:16 URL [ Edit ]
PCの符号付2進数計算で
全ビットを反転させて1を足すと
元の数の符号を反転させた数になる
って計算があるんだけど(2の補数)
何でそうなるのか論理的に説明できないかな?
掲示板で聞いても検証でそうなるから正しいって説明しか聞けなかった。
全ビットを反転させて1を足すと
元の数の符号を反転させた数になる
って計算があるんだけど(2の補数)
何でそうなるのか論理的に説明できないかな?
掲示板で聞いても検証でそうなるから正しいって説明しか聞けなかった。
2010/02/07 Sun 21:24 URL [ Edit ]
電卓を使えって事ですね分かります
2010/02/07 Sun 21:46 URL [ Edit ]
これみんなふつうにやってるんじゃ
2010/02/08 Mon 00:01 URL [ Edit ]
確かに慣れてないと単語は難しいかもしれないな
だが文章自体は確実にわかりやすいんだから難しい単語見ただけで思考停止せずに少しは理解しようとしろよ・・・
だが文章自体は確実にわかりやすいんだから難しい単語見ただけで思考停止せずに少しは理解しようとしろよ・・・
2010/02/08 Mon 00:59 URL [ Edit ]
38+86
は
40+90−6だな
は
40+90−6だな
2010/02/08 Mon 07:45 URL [ Edit ]
38+86なら、110+14 って計算するなー。
桁数が違った場合、
423+948なら、
1300+60いや70+1か、って感じに計算する。
桁数が違った場合、
423+948なら、
1300+60いや70+1か、って感じに計算する。
2010/02/08 Mon 08:18 URL [ Edit ]
2の補数について
全てのビットを反転させたら1の補数
それに1を足したら2の補数
何故そうなるのか?の説明ですが
全てのビットを反転させるとはそもそもどういう事か?
10101010というのがあったとしたら01010101が1の補数
つまり、
11111111から
10101010を引くという事。
2の補数というのは1の補数に1加算なので01010110となります。
でも、2の補数って本当はどういう事かというと
100000000から
10101010を引くという事だから
=01010110となります。
つまり、1の補数を求める時に1加算してから求めると2の補数になるので、1の補数に1加算しても2の補数になるという事。
全てのビットを反転させたら1の補数
それに1を足したら2の補数
何故そうなるのか?の説明ですが
全てのビットを反転させるとはそもそもどういう事か?
10101010というのがあったとしたら01010101が1の補数
つまり、
11111111から
10101010を引くという事。
2の補数というのは1の補数に1加算なので01010110となります。
でも、2の補数って本当はどういう事かというと
100000000から
10101010を引くという事だから
=01010110となります。
つまり、1の補数を求める時に1加算してから求めると2の補数になるので、1の補数に1加算しても2の補数になるという事。
2010/02/08 Mon 10:19 URL [ Edit ]
ゆとりの自分でも普通にこういう計算してるよ
2010/02/08 Mon 12:10 URL [ Edit ]
このコメントは管理人のみ閲覧できます
2010/02/08 Mon 18:30 [ Edit ]
>2の補数を取ると符号が反転する
補数の定義はWikipediaに書いてある通りで,符号の反転には直接関係ありません。
パソコンで2の補数を取ると符号が反転するのは「そう定義している処理系が多いから」です。
ある数とその2の補数で正負のペアを表すのは事実上の標準だと思いますが,最上位ビットを符号ビット,下位7ビットを数値ビットとする処理系も昔はありました(この処理系では10000001が-1になります)。
2の補数で正負のペアを表すように定義したのは,減算をビットの反転と加算で行えるからです。減算回路がいらないので,回路を安価に作成できる数値表現方式として広まりました(昔は電子回路もそれなりに高かったので……)。
補数の定義はWikipediaに書いてある通りで,符号の反転には直接関係ありません。
パソコンで2の補数を取ると符号が反転するのは「そう定義している処理系が多いから」です。
ある数とその2の補数で正負のペアを表すのは事実上の標準だと思いますが,最上位ビットを符号ビット,下位7ビットを数値ビットとする処理系も昔はありました(この処理系では10000001が-1になります)。
2の補数で正負のペアを表すように定義したのは,減算をビットの反転と加算で行えるからです。減算回路がいらないので,回路を安価に作成できる数値表現方式として広まりました(昔は電子回路もそれなりに高かったので……)。
2010/02/09 Tue 01:30 URL [ Edit ]
そろばんやってたので反射的に
いつもやってる。
このやり方はそろばんやってる人よりは遅いが。。
いつもやってる。
このやり方はそろばんやってる人よりは遅いが。。
2010/02/09 Tue 02:34 URL [ Edit ]
このコメントは管理人のみ閲覧できます
2010/02/09 Tue 09:54 [ Edit ]
これってたとえば3110-500みたいな場合どうすんの?
2010/02/09 Tue 12:16 URL [ Edit ]
普通にやってるって人が多いが、10進数とその補数を関連付けて意識しておき、引くんじゃなく瞬時に補数と入れ替えるってことだぞ?
つまり引き算ではない。入れ替えと足し算だ。
2進数ならよりわかりやすい。
つまり引き算ではない。入れ替えと足し算だ。
2進数ならよりわかりやすい。
2010/02/09 Tue 14:11 URL [ Edit ]
普通に暗算したほうがはるかに速いわ
2010/02/09 Tue 21:00 URL [ Edit ]
表面的な話しか見えてないと、普通に暗算した方がはるかに速いわ(キリッ と脊髄反射しちゃうよな。
2010/02/10 Wed 17:17 URL [ Edit ]
タイトルが挑戦的だから批判が多いな。
1000円とか10000円からおつりを計算するのには、使えそうだな。
1000円とか10000円からおつりを計算するのには、使えそうだな。
2010/02/11 Thu 04:12 URL [ Edit ]
俺は10秒で理解できたがな
みんなも最初のおつりの計算だけで何が言いたいのか理解できただろ?
まぁ理系の人なら無意識のうちに気づいてる人は多いはず
みんなも最初のおつりの計算だけで何が言いたいのか理解できただろ?
まぁ理系の人なら無意識のうちに気づいてる人は多いはず
2010/02/14 Sun 09:45 URL [ Edit ]
理系とか文系とか関係ないレベルだと思うが・・・
2010/02/14 Sun 18:40 URL [ Edit ]
理解するためのワーキングメモリが足りませんでした
2010/02/14 Sun 20:36 URL [ Edit ]
このコメントは管理人のみ閲覧できます
2010/03/07 Sun 03:17 [ Edit ]
TrackBackURL
→http://readingmonkey.blog45.fc2.com/tb.php/213-0492e932
→http://readingmonkey.blog45.fc2.com/tb.php/213-0492e932
10秒で覚えられて計算がバツグンに速くなる方法
これは・・・・・
スゲー。
こんなやり方があったのか。
今度から使わさせていただき...
フ〜チ〜のまったりブログ 2010/02/07 Sun 12:54
10秒で覚えられて計算がバツグンに速くなる方法 読書猿Classic: between / beyond readers■補数って?
10、100,1000……から、ある数を引いた残りの数のことを(基数の)補数というが、今回の主役は、
それよりも1少ない、いわゆる減基数の補数(注)...
受験の□■2.0 2010/02/08 Mon 00:03
| Home |