【バグまみれ】プログラミング初心者でも頑張ればバグを見つけられるはず!?【競プロ】
Вставка
- Опубліковано 6 вер 2024
- 前回の動画はこちら! • 【攻撃力無限】プログラミング未経験者にバグ修...
今日の企画は「エンジニア謎解き2」!
プログラミングのバグ探しに挑戦しよう!
予想外の難問も!?
※おまけ謎のヒントは概要欄の一番下にあります!
☆イベントのチケット購入はこちらから!!☆
passmarket.yah...
☆LINE登録はこちらから!☆
lin.ee/sSEFTnR
☆メンバーのTwitter☆
松丸 : / ryogomatsumaru
わち : / kazuhiro_wachi
どや : / kadoya_sk
うんてん : / taku_unten
kk : / kk_riddler
ミヤ : / y_amatsuyu
うみすけ : / kaiyufujimoto
かっつん : / hk_riddler
いすみ : / isibasi_riddle
☆ファンレターなどはこちら☆
〒107-0062 東京都港区南青山3-4-7 第7SYビル401
RIDDLER株式会社 リドラの謎解きチャンネル係
☆RIDDLER株式会社について☆
riddler.co.jp/
☆素材提供いただいたサイト様!☆
効果音ラボ: soundeffect-la...
OtoLogic: otologic.jp/
魔王魂: maoudamashii.j...
MusMus: musmus.main.jp/
H/MIX GALLERY: www.hmix.net/
DOVA-SYNDROME: dova-s.jp/
ユーフルカ: youfulca.com/
D-elf: www.d-elf.com/
いらすとや: www.irasutoya....
★★★★★★★★★★
#謎解き
#ナゾトキ
#リドラの謎解きチャンネル
修正:
1:29 正しくは「2本残して、1本切る」です。
16:13 正しくは Y=「盤面のヨコのマスの数」です。
☆おまけ謎のヒント☆
水を上げた後の処理を考えてみましょう。
水を上げない場合は1日待ちますが、上げた場合は…?
※最終問題は正しくは Y=「盤面のヨコのマスの数」 となります。
今日のおまけ謎の答えは…
答えは「水を上げた後に1日待つ処理を足す」
※答えはコメントに書かないでね!
正解したら自慢しよう!riddler.co.jp/redirect/NTgQpEz0clrjErANin6i
最後の問題でXもYもタテになってます
1問目の説明部分、3本残して1本切るとなっていますが、問題の想定動作は3の倍数本目を切る処理となっているため、2本残して1本切るが正しいのではないでしょうか
前の人も書かれていますが、0,1,2,3,0,1,2,3…と繰り返すので4の倍数のところだけ木が切れてしまいますね💦
3本残して1本切る動作にはなっています。4の倍数だけ切ってしまいますね。
@@peanuts_App
1を加算した後に木を切るかの判定を行なっているため、3の倍数本目で切るのは合っているかと思います
1:0→1
2:1→2
3:2→3→メモが3のため木を切る→0
おまけ謎は水をあげたことを記録する動作がないから、チェックした時にあげたかどうかわからなくて先に進まないと思ったんだけど、ダメなのか?
0とnullの違いの例…
5:33
0→ファミマに行ってファミチキがない
null→セブン行ってファミチキがない
好き
これ以上わかりやすいnullの説明見た事ない
さすがリドラのコメ欄🙌
トイレットペーパーで表すこともありますね
①ホルダーにセットされているトイレットペーパーの残りの長さをチェック
②残っていれば「残りは10mです」などのように表示
③残っていない(芯のみ)場合「残りは0mです」
④そもそもホルダーにセットされていない場合「残りはnullです」
になります
もうあんたが義務教育作りなおしてくれ
分かりやすすぎて好き
プログラミングの格言
「想定通りに動くのではない。設定した通りに動くのだ」
4つめの問題は、「貸し出し中にする」処理を「取ってくる」より先に入れれば良い、というシンプルな解決策がありそう。
実際のプログラミングだと、貸し出し状態チェックから貸し出し状態にするまでの一瞬の間に、他のロボットの貸し出し状態チェックが入らないように、その間の他のロボットの貸し出し状態の参照を禁止する処理を挟む必要がある。
@@user-mn9fq9bh7j 大規模なシステムは解りませんが、小規模なら、頭を一つにして残りは全て頭の指示に従うように無理矢理しちゃいますかね。
そいつが貸し借りの情報を一括で処理する。
@@user-tq3nd4ln9m逐次処理
続編待ってました!
4問目は排他の問題ですね。
あとこれ、意地悪な指摘かもしれませんが、貸出中に入力待ち(返却待ち)になって他の人の問い合わせ受け付けられないですね
自分も最初にこれ思いました
同じく気にはなってしまった。
まぁちゃんとデータベースと関連処理があるなら、
ハードを分けてしまうのが、手っ取り早く解決するでしょうね。
貸出機と返却機
1:36 3本残して1本切るだと切るのは4本に1本の割合になりませんか
やっぱり、そのバグ気になりますよね
やっぱり、絵と違うよね……
プログラム経験者(やったことある程度)から見ると見たことある挙動もあって違った視点でも楽しい
高度な知的対戦と軽度な肉体的対戦が見られるのが実にこちらのチャンネルだと思いました
ゴネ問題は倍率にふさわしい素晴らしい回答が見られて満足です
最終問題もそれにふさわしい素晴らしい回答だったのに後がグダグダでこちらも満足です
第4問のもう一つのバグについて
第4問は「本が返却される」まで1行目に戻れない
よって本の冊数に限らず、本を貸し出した瞬間にロボットが「本が返却される」まで待機を始めます。
ロボットが16体しかいなかった場合、その図書館全体で同時に本を16冊までしか貸し出せません。
間違ってたら教えてください
3:35
木が0本ある場所で使うと木を0本切ってしまうので全ての木を切ってしまった
“0”と“null”の分かりやすい喩え(※一部の界隈に限る)
「何?レベルを持たないならレベル0ではないのか!?」
0とnull、メモでイメージした方が早いと思う
Q. メモに何本と書かれてる?
メモに0本と書かれてる
→答えは0本でOK
メモに何も書かれてない
→0本と答えるのは違う
ちなみにJavaScriptだと「何も書かれてない」がUndefinedになって、
「まだ書いてません」とか「メモ消してます」にnullを使う
8:42
あいこになって
プログラム止まってほしかった。
同じく
てか、そこでミヤが勝っていれば2×5で10倍になってたのかな?
@@Cafemoka_7
✌✋✋の1倍にされる
リスクは負えなかったのかも
前回の動画が、このチャンネルで2番目に人気(1番は変な家)だから、続編嬉しい人多いと思う。
ただ競プロって言葉を知らなかったから、「あ、ついに競馬でプログラミングが来たのか」って思ってしまった。
逆にもう1番に上り詰めた変な家ぇ……😂
8:08
÷0は定義できないので、プログラミングが出来ない(計算できない)のではなく、数学的に出来ないので、エラーを吐きます
数学は
x×y=zのとき
z÷y=xと定義した
x×0=0この場合
0÷0=x、ホントに何でも有りになってしまうのだ
@@zouo-from-Taikonotatsujinそんな定義はしていません。
実数の四則演算ではそもそも0の乗法における逆元は存在しないため、ある実数aに対してa/0は定義されていません。
@@user-po1bf2rv4q逆元ってどういうものなんですか?
0とnullこんなにわかりやすく説明できるのすごいよね本当。全エンジニアさんはこの動画見てほしい。
プログラミングが苦手ても面白く見られるのは凄いな。
貸出ロボットの問題では、このコードだと返却されるまで動けないから貸出機能と返却受付機能で分けないといけない
返却も、本を窓口(ロボット?)に戻した時じゃなくて棚に戻された時に貸し出し状態を解除するようにしないと、現物がないのに貸出可能になってしまうタイミングが発生する
出題側がミスったり想定外のことされるのがプログラムって感じだな〜
今回も楽しいしずっとシリーズ化して欲しい
プログラミング謎シリーズあるあるの寸劇が今回も最高でした🤭
答えが分かると「なるほど〜」となるあたり、RIDDLERの問題っぽくて好きな企画です❤✨
ぜひまた第3弾も待ってます…!!
14:08 この場合は「リドラの謎解き一巻01」「リドラの謎解き一巻02」「リドラの謎解き一巻03」……と振って、「リドラの謎解き一巻を借りたい」→「今は01が貸し出し中なので02を持ってきました」ってやればいけるはず
普通に蔵書数と貸し出し数で管理すればいいやで
このシリーズ、謎解きイベント終盤の「何かがおかしい気がする……でも何だ……?」状態がズバッと解決したときに似たカタルシスがあって好きです!
ところで……
RIDDLERのみなさんは弊推しをもっと丁寧に扱ってください!!!www
最終問題とか超ファインプレーだったのに……!w
続編見たかったから嬉しい
16:12 ピジョップ
タテ
タテ
で草
あなた疲れてるのよ
仕事でプログラミングやってるけど一見気づかなくて、こういう思い込みでバグ生んでるんだなぁと再確認w
めちゃくちゃ好きな企画です。コメント欄も発見あるから面白い
バグ問題楽しい!
16:12
…この問題凄くバグってません!?
XとY両方が「盤面の縦のマスの数」はまずいと思います!正方形想定にしかならなくなる!
確かに
プログラミング謎好き!嬉しい❤
貸し出しロボと水やりロボのバグ挙動に
可愛くてニコニコしちゃった😂
そしてキらめく時のわちさんかわよ💙
ポンコツなミヤさんもkawaii😂
「行くことのできるマス」を表す変数は整数型が好ましく、小数を使うと計算の誤差が生じる可能性がある。
整数型の小数点以下切り捨ての仕様により、「もしX×Yが奇数なら、答えはX*Y/2+1」
最終問題の誤字、題意と違い過ぎる箇所だから無視して解いたけど、一生気にしてしまった
ちなみに誤字は、XYのどちらもタテのマス数を参照していることです
(本題)の「ビショップ」が「ピジョップ」になってる事かと思ったらそれ以上にコードに影響しそうな部分で笑った
最終問題コピペしてバグに気づかないミスあるあるだなーって思ったら全然違った
図書館ロボット君、「一行目に戻る」が本の返却後にあるから一台につき一冊しか本を貸し出せない(帰って来るまで次の貸し出し作業を行えない)という問題が
私も全く同じ事が気になりました。「一行目に戻る」がなければ気にならなかったと思います。
ロボットが本を取りにいってる間に人がいなくなると、本を渡せなくて詰んでしまう
プログラミングさっぱりわからないけど、2回とも楽しく見れたー!謎解きってすごい!
エンジニア謎解きとても面白かったです、
面白かったなぁ
今後もシリーズ化して欲しい
今、ちょっとプログラミング知識が必要なゲームをやってるんで良いタイミングの動画で為になりましたよ。
ゲームでも図書館の問題のようなバグがあったんで。
いわゆる排他制御をしないとだめなので、
ロボットが取る行為をして
取れたら在庫ある、取れなかったら
在庫なし、にする。
そしたら在庫の個数まで管理しなくていい。
昔はロックファイル作るのに
いきなり作って、作れたらロック
作れなかったらロックされてる
と、判定したものだ
そもそも本がないときにわちさんは本がないですって返してましたけど、そこの処理も未定義ですよねこの問題
4問目は「図書館で検索された本を読んでる人がいたら、ロボットが『在庫はあるはずなのに本棚にない』とバグるかロボットが読んでる人から奪おうとしてしまう」かと思った😓
切り株は木?
ロボットの台数は?
前提の大切さが学べます
最後の問題、X、Yどちらもタテの数となってますが、あってますか?
貸出ロボ君は返却されない限り動かないのか?
7行目は返却時のプログラムとして分けた方がいい気がする
3問目、
出力先が定義されてないから結果が行方不明なんないかなぁ?とか
計算結果の桁数指定ないから割り切れない時どうなんのかぁ?とか
別のことが気になりすぎて答えを見落としちゃってたわ
ゼロディバイドは高校数学でもできないから、プログラミング言語によっては処理できたりしてエラーにならないからむっちゃ混乱するんよね
プログラマーです。
このクイズ面白いです!!
この図書館ロボット地味に所蔵してない本の定義もされてないな……
並列処理、同時更新はデッドロックに注意しないとね
0÷0=1
だとしたら、両辺に2をかけて
0÷0×2=0×2÷0=0÷0=2
のようになってしまい、
1=0÷0=2
とおかしな等式もできてしまうので、
0÷0の答えは定められません。
これ好き。もっとやってほしい。
最後の問題どっちもタテなんだけど
これは誤字?
ジャンケン、一発で勝ち決まって良かったねw
あいこの処理書いてなかったから、あいこだったらフリーズしてたやん
わちさんが、0÷0は1じゃん、って言ってるけど、
誰も購入してない日の一人当たりの購入数が1個、購入金額1円って出ると困らない?
この場合は0個、0円って出てくれたほうが嬉しくない?
ゴネわち、あいこが定義されてないw
プログラムの穴を見つけるのが面白かった。
うみちゃん頭いいな
ミヤさん、色んな意味でお疲れ様でした😅
0とnullの違いはよく箱に入ってるボールの数で表されがち(変数という概念も含めてわかりやすい)
箱に何も入ってない→0が出力
そもそも箱がない→nullが出力
※返信欄にわけわからないコメントを残してる人がいますが全く知らない人達です。
有名でもなんでもないのにコラボできるわけないだろ
すごい!本物だ!!
リドラとぐっちーさんのコラボの日も近いか!
@@user-uo2vh4em9s
まじで!?
楽しみ!!
@@user-uo2vh4em9s
それは楽しみすぎる
@@user-uo2vh4em9s
まじですか!?
第一問の修正された問題、私は木の間隔が広い一本道かと思いました。
理由は、ちょっと進んだところに1本目の木を通過してなくて再びその一本目の木を認識してメモに書かれた数字を2にしてしまうと思いました。そしてちょうどメモが3の時に一本目の切れる場所が来て、一本目の木を切るということが起こるかと思いました。
÷0問題で0÷0を「1やん」って言ってるけどそれだと何も売れなかった日の平均購入数と購入金額が1になっておかしな話になるんだよな
2問目、切った木を「木」としないなら、残り2本になった時点で、それ以上数字が増えないので、「全ての木を切ってまう」にならない。
ので、切った木も「木」とする、かつ、3の倍数でないとき、という限定が出てきたのかなと思います
切った木を木としない場合は、
おそらく残り2本の時は1本目に2週目に到達したときに3になり、
残り1本の時は、3週目に3になるので、全部切ってしまう、という意図かと。
@@sakepuyo5146 あー確かにそうですね。
16:02
「チェス盤のマス目の大きさは変化する」だと1マスの大きさが大きくなるだけで、盤面は8×8マスのままなのでは?
4:57
ヨセフス問題だ
チェスのやつ既視感あるな、1に気づけなくて解けなかった思い出
タテ×タテしてるぢゃん…
1問目って2の時4行目で3になるから5行目行って木を切っちゃわないの?
5行目の頭にelse付いてるのか?というか普通3と3以外の順番逆じゃね?
あと3本残してねえじゃんw
最終問題、両方タテ…?
前回の動画ってどこで見れるんですか…??
0:18 頃に右上にリンク出てきます!
これ、ミヤとわちがどちらも勝ったら10倍だよね……?
これ仕事とかでやってるとあれは?これは?ってなって落ち着いて見れんww
ミヤさんスベった~w
リドラに出会ったのがこの企画の第一回目がおすすめに載っていたからなので第二回嬉しいです!チャンネル登録しないで見続けてたけど流石にします
ラストの問題
本を棚に戻す処理が無いから
そこもバグだと思ってしまった
最後の問題、XもYも「タテ」になってない?
ヨコがかわいそう😢
おまけ謎 雨が降った時かと思った
去年新入社員に見せたいと思った動画の続編!今年の新入社員に見せたい!
小説家って難しいんだなぁ
最終問題、ビショップをナイトと勘違いして詰んでた
まったく同じ状況になってて、このコメントで救われました😂
これはサムネが競プロerホイホイ 幅1の例外(用語でコーナーケース)に気づかずに間違えた人が続出した問題 でも意外と他にプログラミング分からなくても面白いコーナーケースある問題とか思いつかないなあ...
逆転のチャンス(チャンスが全員にあるとは言ってない)
最終問題の誤植を指摘できたら、ミヤさんが逆転優勝できたかもしれない
4問目、貸し出されてるかチェックしないと返却ができないかも
4問目,本が借りられた後返されるまでその機械動けなくない?貸出処理と返却処理を分けてifにしないといけない気がする
面白いけど3本残して一本切るなのに画面はずっと2本を残して次の1本を切るなのでホント謎
流石に、蔵書にはIDを振っているかと思いますね…
1冊目の謎トレと2冊目の謎トレは別の本…
おまけ謎
問題「どうしよう?」
怠惰の回答「諦めよう」
BGMの音もう少し小さいと嬉しいかも
Z=0だったので、鼻から悪魔が出てきました
脆弱性の定義がおかしいんよ。。。。
2問目って確実に4行目を実行するから3行目要らなくない?
イチコメ!