1:名無しさん@2ろぐちゃんねる : 2022/01/11(火) 06:47:34.47 ID:Jo/nnQVM9
トイレットペーパーでプログラミングの変数を理解する模型が分かりやすい 「絶妙」「秀逸」と話題に
ただしガムテでお尻は拭けないものとする。
https://nlab.itmedia.co.jp/nl/articles/2201/10/news048.html
2022年01月10日 19時50分 公開
https://image.itmedia.co.jp/nl/articles/2201/10/l_ah00_null1.jpg
プログラマーが変数を理解するため、トイレットペーパーに例えてみた模型が「分かりやすい」「秀逸」と注目を集めています。
製作したのはTwitterユーザーのぱんかれ(@pcb)さん。木箱の中に、小さなトイレットペーパーホルダーが入っており、それぞれ「Non Zero Value(トイレットペーパーがついてる)」「0(芯だけついてる)」「Null(何もついてない)」「Undefined(ホルダーすらない)」「NaN(ホルダーにガムテープがついてる)」とラベルがついています。
ぱんかれさんの説明によると、トイレットペーパーを数値(signed integer)だとすると、
Non Zero Value:0ではない長さのトイレットペーパー(残量≒数値)
0:長さ0のトイレットペーパー(残量がちょうど0:棒には芯だけになってる)
Null(無):トイレットペーパー自体がセットされてない(ので芯すらない)
Undefined(未定義):トイレットペーパーが入るための器(データ型)がない(未定義なので、そこにトイレットペーパーを入れる先がない)
NaN(Not a Number:数字ではない):トイレットペーパー(≒数値)ではない
なおNaNは1+NaNのように数字を足しても全てNaNになるので、「(ガムテが入ったホルダーにトイレットペーパーを入れても)トイレットペーパーにガムテープがくっついて使えなくなるので数字にならない」とのこと(※ただしガムテでお尻は拭けないものとする)。
(略)
※省略していますので全文はソース元を参照して下さい。
https://twitter.com/5chan_nel (5ch newer account)
元スレ https://asahi.5ch.net/test/read.cgi/newsplus/1641851254/
3:名無しさん@2ろぐちゃんねる : 2022/01/11(火) 06:48:27.02 ID:aKYL5cCP0
Nullぽ
9:名無しさん@2ろぐちゃんねる : 2022/01/11(火) 06:57:40.80 ID:C4ayrCEE0
>>3
GAッ
5:名無しさん@2ろぐちゃんねる : 2022/01/11(火) 06:50:16.10 ID:ls5Xp8YP0
言語やDBによって取り扱いが異なるのでちゃんと確認するように
6:名無しさん@2ろぐちゃんねる : 2022/01/11(火) 06:51:06.12 ID:P+4lwXnQ0
芯があるのとないのは使い古された表現だな
7:名無しさん@2ろぐちゃんねる : 2022/01/11(火) 06:55:20.58 ID:d/WtIMKy0
間違ってね?
19:名無しさん@2ろぐちゃんねる : 2022/01/11(火) 07:17:19.76 ID:GNPzsEeP0
>>7
kwsk
8:名無しさん@2ろぐちゃんねる : 2022/01/11(火) 06:57:11.88 ID:bqzrcbBf0
意味不明w
そんなんでわかった気になってんじゃねえやw
22:名無しさん@2ろぐちゃんねる : 2022/01/11(火) 07:23:40.85 ID:sMpWhngM0
>>8
意味不明と言えばいいと思ってるだろ?
そうじゃなくて理解しようとしてないからだ
お前にはがっかりだ
11:名無しさん@2ろぐちゃんねる : 2022/01/11(火) 07:00:25.81 ID:vhLvlHiS0
トイレットペーパーの構造に前提が多すぎるだろw普通に箱とミカンでいい
14:名無しさん@2ろぐちゃんねる : 2022/01/11(火) 07:02:35.72 ID:vnoI7b440
分かってる人には当たり前
分からない人には白人の出身国を当てるくらい困難
15:名無しさん@2ろぐちゃんねる : 2022/01/11(火) 07:03:13.83 ID:cdheVzUR0
このレベルの理解で模型まで必要なら
プログラミングは向いてない気がする…
207:名無しさん@2ろぐちゃんねる : 2022/01/11(火) 11:23:11.43 ID:TsoGumzg0
>>15
これ
プログラミングというより算数の □ を使った方程式で学ぶ範囲がほとんど
16:名無しさん@2ろぐちゃんねる : 2022/01/11(火) 07:08:36.79 ID:loI+vi8m0
よくある「箱(変数)を用意(定義)してそこにもの(値)を入れる」で理解できない人がいるのか
55:名無しさん@2ろぐちゃんねる : 2022/01/11(火) 07:51:49.92 ID:NaI3BJ+S0
>>16
nullの話だと箱の名前だけあって箱
210:名無しさん@2ろぐちゃんねる : 2022/01/11(火) 11:26:44.02 ID:TsoGumzg0
>>55
CだとNULLは0だからな
変数のアドレスが0とは限らない
199:名無しさん@2ろぐちゃんねる : 2022/01/11(火) 11:03:19.29 ID:9jmSUm0p0
>>16
お前が理解できてない説
206:名無しさん@2ろぐちゃんねる : 2022/01/11(火) 11:20:34.09 ID:5K/9BXKc0
>>16
0とNullとNaNをどうやって表現する?
17:名無しさん@2ろぐちゃんねる : 2022/01/11(火) 07:11:19.43 ID:kD7rePdB0
ツッコミだしたら色々言いたくなるけど
面白いからまあよし
18:名無しさん@2ろぐちゃんねる : 2022/01/11(火) 07:15:13.38 ID:29Cdy6s20
定義域以外の値を入れたい
ロール10個分とかマイナスとか
20:名無しさん@2ろぐちゃんねる : 2022/01/11(火) 07:21:04.25 ID:z0zqZUDF0
プログラミングがわかってる人にはこの模型がわかる
わかってない人にはわからない
学習用にはならなそう。ジョークとしておもしろい
23:名無しさん@2ろぐちゃんねる : 2022/01/11(火) 07:24:03.22 ID:pSsC2tNH0
空文字””はどういう扱い?
37:名無しさん@2ろぐちゃんねる : 2022/01/11(火) 07:34:04.31 ID:GLI/00jG0
>>23
芯のないトイレットペーパーが後1周しかない状態かなぁ
209:名無しさん@2ろぐちゃんねる : 2022/01/11(火) 11:25:17.17 ID:I7xI+c9o0
>>23
ただの0じゃん
232:名無しさん@2ろぐちゃんねる : 2022/01/11(火) 12:36:09.15 ID:4AenXzMo0
>>23
ガムテープの芯だけ
25:名無しさん@2ろぐちゃんねる : 2022/01/11(火) 07:28:15.88 ID:sMpWhngM0
空文字は文字列型のサイズのない状態か
あるいは、中身のない空っぽなやつ
26:名無しさん@2ろぐちゃんねる : 2022/01/11(火) 07:28:58.42 ID:sMpWhngM0
無と空の違いを中身が無い者には理解するのは難しい
29:名無しさん@2ろぐちゃんねる : 2022/01/11(火) 07:30:40.73 ID:sMpWhngM0
ポインタを知っていても理解できずに敗れ去ったJava屋が哀れ
30:名無しさん@2ろぐちゃんねる : 2022/01/11(火) 07:30:57.01 ID:oJ2yDCZY0
これを理解に一助としてちゃんと調べてくれれば良いが
31:名無しさん@2ろぐちゃんねる : 2022/01/11(火) 07:31:03.19 ID:upJp2/100
1回30センチとか使っていい長さが決められてそうだな
あんまり使いたくない
33:名無しさん@2ろぐちゃんねる : 2022/01/11(火) 07:31:36.61 ID:sMpWhngM0
*が穴に見えるのだろう
34:名無しさん@2ろぐちゃんねる : 2022/01/11(火) 07:32:31.99 ID:sMpWhngM0
だがしかし、nullポインターが~などと得体のしれない化け物のように扱うことだけは上手だったな
35:名無しさん@2ろぐちゃんねる : 2022/01/11(火) 07:32:47.35 ID:QElloTIe0
言語によって違うから
41:名無しさん@2ろぐちゃんねる : 2022/01/11(火) 07:37:31.77 ID:sMpWhngM0
ごちゃごちゃうるせえくそ野郎って言いたいだけなんだろうな
追い詰められてるのだろうニチャァ
44:名無しさん@2ろぐちゃんねる : 2022/01/11(火) 07:40:45.50 ID:jYwie3ZP0
そんな小手先のことより自分で簡易プロセッサーを設計した方が早いよ
ハードとソフト、まぁこの場合はRTLシミュレーションとアセンブラがどう動くか分かれば、高級言語の動きなんて自然の摂理の如く理解可能
46:名無しさん@2ろぐちゃんねる : 2022/01/11(火) 07:42:51.02 ID:sMpWhngM0
論理回路を自分で実装してみれば確かにおのずと理解できるだろ
低みからのマウンティング行為
49:名無しさん@2ろぐちゃんねる : 2022/01/11(火) 07:46:23.84 ID:+b+gbVdm0
ソフトウェアは仮想じゃなくて
実際に回路を使って実装されるもの。
といえばだいたい理解してくれるもんだ。
52:名無しさん@2ろぐちゃんねる : 2022/01/11(火) 07:50:28.19 ID:sMpWhngM0
モグラたきげーむみたいになっててワロタ
56:名無しさん@2ろぐちゃんねる : 2022/01/11(火) 07:51:57.16 ID:zDqoMZ750
日本もインドみたいに16×16まで暗記するとかしたらいいんじゃね
インド式数学もいいよね