巧妙なアイデア「ふたまたニョキニョキ」がすべてを解決する【データ構造2】#49

Поделиться
HTML-код
  • Опубликовано: 26 июл 2024

Комментарии • 189

  • @yurucom
    @yurucom  Год назад +5

    【参考文献のリンク】
    ○アルゴリズムとデータ構造
    amzn.to/3FJSIsN
    聖書。非プログラマーが読むのはややキツいが、絶対古くならない名著。
    【サポーターコミュニティ加入はこちらから】
    yurugengo.com/support
    【おたよりフォーム】
    forms.gle/BLEZpLcdEPmoZTH4A
    ※皆様からの楽しいおたよりをお待ちしています!

  • @floatum4941
    @floatum4941 Год назад +114

    水野さんがでかいイメージあるのは実際に会ったことある人だけで、ラジオ動画見てる人だけだと水野さんと堀元さんの身長差に驚くのよ(n=1)

    • @kacky3219
      @kacky3219 Год назад

      ruclips.net/video/ugPrgVrR6ag/видео.html
      これで分かる

    • @theuserhasnoname4783
      @theuserhasnoname4783 Год назад +6

      コメの高評価の数はサンプル数かな?
      自分も押しとこ

    • @HitYoutube
      @HitYoutube Год назад +2

      ゆる言語学かまいたちペアですね

  • @nanakiai
    @nanakiai Год назад +48

    水野さんめちゃめちゃコンピューター科学の素質あって羨ましい
    ひらめき方がパンピーじゃないんよ

  • @user-ry5tn6vs2l
    @user-ry5tn6vs2l Год назад +27

    ↓これ1番好きな数学ジョークですw
    Q.フラクタルの提唱者、Benoît B. Mandelbrot (ブノワBマンデルブロ)のBはなんの略?
    A. Benoît B. Mandelbrot

    • @user-ry5tn6vs2l
      @user-ry5tn6vs2l Год назад +3

      Benoît (Benoît (Benoît (…). Mandelbrot). Mandelbrot). Mandelbrot

  • @simatani
    @simatani Год назад +73

    ランダムな数字を一日中叫ぶ続けることができるランダム部長は相当に優秀な方ではないかと。友達になりたいかどうかは別にして。

    • @user-qwertyu1op
      @user-qwertyu1op 2 месяца назад +2

      このコメントを見て本当にランダムならSCP-4559みたいな使い方が出来そうだなとか思ってしまった

  • @Ethereal-Wind
    @Ethereal-Wind Год назад +36

    なるほど!この番組からパフォーマンスよく知見を得られるのは、厳密コンピュータ科学ラジオでも無秩序コンピュータ科学ラジオでもないからなのですね!

  • @kensuketomioka2321
    @kensuketomioka2321 Год назад +35

    堀元さん、水野さんが喧嘩することなく、これからもずっと仲良くいて欲しいなあ

  • @knngayr
    @knngayr Год назад +31

    「二分探索木の話じゃなくて木の話だ」の部分、堀本さんが言語学ラジオの方でいってた「塹壕の中に無神論者はいない」に対するジェイムズ・モロウの「それは塹壕の話であって無神論者の話じゃない」を呼び起こして一人でふふってなる

  • @hydadesign2490
    @hydadesign2490 Год назад +29

    堀元さんが後半の水野さんの抽象化から、データ構造のまとめに戻さずに「創発」までもってくところで、脱線のほうの枝を優先していることがこのラジオのおもしろさをつくっているルールなのだ感じた。

    • @hydadesign2490
      @hydadesign2490 Год назад +1

      @@aqua372b ありがとうございます。

  • @user-hu6zv1zg8y
    @user-hu6zv1zg8y Год назад +39

    創発かは分かんないけど、洗濯バサミをつなげて複雑な形を作ったことは誰しもあると思う。

  • @sabak7390
    @sabak7390 Год назад +41

    水野さん予想通り自力でO(log n)にたどり着くの流石ですね。
    最悪値についても余裕で気づくと思ってましたw

  • @kaoruuuuun
    @kaoruuuuun Год назад +21

    堀元さんの何となくでランダムに出てきた数字が128ページでしっかり2べきなの、コンピュータサイエンス学徒みが強くて良い

  • @lefthand3754
    @lefthand3754 Год назад +8

    水野さんと堀本さんの身長の勝手なイメージが真逆でびっくりした

  • @norirumi8644
    @norirumi8644 Год назад +20

    39:25
    たぶんだけど水野さん、数列の一般項とか決め打ちした後数学的帰納法で証明するタイプ

  • @user-di6im3gi2b
    @user-di6im3gi2b Год назад +10

    ランダム部長が連続する数を叫んだときはテンション上がるよね

  • @tikin315
    @tikin315 Год назад +3

    相変わらず楽しそうでなにより
    ニコニコしながら見てます

  • @mudaso-heavy-user
    @mudaso-heavy-user Год назад +3

    楽しみに待ってました

  • @ysdytk
    @ysdytk Год назад +72

    本質ではないと思いますが、31を32に、32を33にコピーすると全部同じ値になってしまいます(移動のつもりで間違ってそのコード書いた事あります😅)

    • @hiroya1192
      @hiroya1192 Год назад +5

      メインフレームでは0クリアや空白クリアで使うロジックです。

    • @extukusu
      @extukusu Год назад +1

      逆に動かさないと移動にはならないの、一回はやるよね。

    • @HitYoutube
      @HitYoutube Год назад

      @@hiroya1192 それは聞いたことないな。Fortranでは配列定義後の初期化はデフォルトですし。全部クリアなら配列取り直すだけで自動的になってくれます。

    • @osirkov5238
      @osirkov5238 Год назад

      ほんとうだw

    • @chimkio
      @chimkio Год назад

      基本情報技術者の試験に出てたな、こういうミス

  • @user-byakko
    @user-byakko Год назад +31

    文系と理系の垣根を越えてくるの、好き~

  • @westmountain5428
    @westmountain5428 Год назад +7

    アルゴリズムの本読んだときに二分探索が出てきて、だから?となったけどその有用性がなんとなく分かった! 文系人間としてはこういう話がありがたい!

  • @user-rf4rp4ci2r
    @user-rf4rp4ci2r Год назад +15

    水野さんの記憶力すげー

  • @kyoh86
    @kyoh86 Год назад +3

    シンプルなルールが複雑な物を生み出す、って示唆良いですねぇ。
    スゴくシンプルなルールで行動する小さなロボットを大量に集めたら、アリ見たいに餌を集めるロボットの群れができたって話を思い出した。

  • @yuyasato4132
    @yuyasato4132 Год назад +2

    現在の台本では飽き足らず、未来の台本までブレイクし始める水野氏、応援してます

  • @aderia_karimera2
    @aderia_karimera2 Год назад +11

    いつかデータ圧縮の回をやる時またハフマン符号化に自力で辿り着くかな 楽しみ

  • @gensho7120
    @gensho7120 Год назад +3

    うーん、今回も面白かった。「ふたまたニョキニョキという中庸なルールが挿入と探索の両方に有用」を切り取って、動画のメインテーマにするという堀本さんのプランニングセンスにまずは脱帽です。

  • @user-wy9si4he3x
    @user-wy9si4he3x Год назад +13

    個人的には一番グッとくるデータ構造はスタック。
    木構造の深さ方向の探索を見事にメモリ上に落とし込んでいると思う。
    なによりスタックへの積み下ろしで、コンパイラーやCGの座標変換などが同じような抽象化で扱えるのが気持ちいい。
    ふたまたにょきにょきは天才の発想

    • @HitYoutube
      @HitYoutube Год назад +2

      スタックは再帰的呼び出しの時に超便利。終了判定をスタックに積み残しがあるかだけで判定出来て、イチイチ比較演算とかをしなくて良くなる。

    • @kszy4793
      @kszy4793 Год назад +2

      カードゲーマーがプログラムを学ぶときになぜか知っていることでお馴染みのスタック

  • @user-hu8yo1pu9w
    @user-hu8yo1pu9w Год назад +9

    とてもどうでもいい指摘ですが、新自由主義はケインズではなくフリードマンかハイエクですね。この2人はケインズと対立していたので思想としては逆です。
    新自由主義自体レッテル的な要素が多い言葉なのでこの2人に使うのも微妙ですが、、、
    細かいことを指摘してしまい申し訳ありません。
    お二人のご活動、陰ながら応援しています。

  • @user-iv1do8ii4n
    @user-iv1do8ii4n Год назад +5

    ポインタに一旦引っかかった人でないと、ポインタの威力って伝わらないかもな~。
    とてもいい解説でした!

    • @user-iv1do8ii4n
      @user-iv1do8ii4n Год назад +3

      身長1、2、3cmのやつを与えられた時の水野さんの表情の変化、めちゃめちゃ良かった。

  • @256yayo
    @256yayo Год назад +6

    14:39 より厳密には
    水野さんの右側の子は全て水野さんより大きい
    ではなく
    水野さんの右側の子孫は全て水野さんより大きい
    かと思います。
    子: 直下
    子孫: 子をたどることで到達できる

  • @user-hf1mi8ko4e
    @user-hf1mi8ko4e Год назад +1

    すごい面白いw

  • @haruka_52
    @haruka_52 Год назад +5

    計算機科学でポインタという時はCのポインタを指すのではなくて配列の添字や例えの中のページ番号のようにデータに即座にアクセスするための値を指す抽象概念だったと記憶しています。Cのポインタはそれを目指してはいるので無関係ではないですが。
    で、CのポインタはCの初学者が躓く最大のポイントだけど配列の添字は初学者が躓くことはあまりないので、Cのポインタの学習を阻害する難点は抽象概念のポインタとは関わりが無くて、おそらく型付けがゆるくてポインタがちゃんとポインタでない(型を間違えるとデータの途中の無意味なアドレスを指してしまったり、扱いを間違えると何のデータも指さない無意味な場所やメモリ空間上に存在しない場所を指してしまう)事が問題なのだと思っています。
    なので、計算機科学を学ぶにおいて必ずしもCは適切な言語とは言えないしポインタを理解するのにC言語のポインタを学ぼうとするのは非常に非効率なのではないかと思います。

    • @benikoji3
      @benikoji3 Год назад +2

      C言語のアレは「アドレス」だからw

  • @iou_256
    @iou_256 Год назад +7

    意外とでかいことでお馴染み水野

  • @applejack0094
    @applejack0094 Год назад +3

    ワークショップデザインとかでも、問いの立て方として、ある程度の制約のある問いの方が場が活性化する、って言うのと同じ話ですね

  • @yassu3015
    @yassu3015 Год назад

    僕も数学得意だけど、理科苦手なタイプなので、水野さんに親近感を感じています

  • @micty392
    @micty392 Год назад +7

    機械科学生の頃のCNCフライス実習のコード入力で指導員の方から「1行目の次は11行目、その次は21行目というような書き方にしてくださいね」と言われ、理由は「ミス修正時にコードとコードの間に新たなコードを書き足しやすいから」でした。
    今回の話と似てるかな〜と思って聞いていましたが、工作機械のコンピュータとは全然違って面白いですね。

    • @RyuseiYamaguchi
      @RyuseiYamaguchi Год назад +2

      CNCプログラミングではNコードという行番号を指定する機能と、GOTO文があるのですね。
      実は、昔はFORTRANやBASICといった、用途を特定しないプログラミングに使われる言語(汎用プログラミング言語)でも、行番号とGOTO文を使って、プログラムの制御構造を表現していました。特に、昔のホビーパソコン(マイコン)のBASIC処理系では、行番号を指定している場合は行の編集、指定されなかった場合はコマンドの即時実行といった仕組みのラインエディタが使われていて、全ての行に必ず行番号を付す必要があったこともあり、行番号を10ずつ飛ばして入力する作法は同様でした。
      しかし、その後に登場したプログラミング言語では、読んで分かりやすい名前(ラベル)に対するGOTOや、構造化プログラミング、関数の呼び出しといった制御構造が使われるようになり、行番号は使われなくなりました。
      BASICの行番号がコンピューターの内部でどうやって管理されていたか探したところ、 ngs.no.coocan.jp/doc/wiki.cgi/TechHan?page=3%BE%CF+BASIC%A4%CE%C6%E2%C9%F4%B9%BD%C2%A4 が見つかりました。図2.11 テキスト格納形式 を見てみると、各行が「リンクポインタ」でつながった構造になっています。木構造ではないですが、ポインタを使って、行を簡単に抜き差しできるようになっていることが分かります。

    • @HitYoutube
      @HitYoutube Год назад +4

      それは、パンチカードという1行単位でデータを入力するときの名残ですね。
      初期BASICにもRENUMという各行の行番号を10単位に揃えるコマンドがありました。

  • @mozhigengo9479
    @mozhigengo9479 Год назад +4

    ゲームブックを思い出した。
    各ページにストーリーと選択肢があって、選択肢ごとに何ページに進むか違い、選択によって展開と結末が変わる本。最近あるのかな。

  • @to_lz144
    @to_lz144 Год назад +2

    シンプルな規則が複雑性を産む、という水野さんの話からバッカスナウア記法の話とかが始められそうですね!

  • @user-dw7xv3ff6m
    @user-dw7xv3ff6m Год назад +1

    大小を比べて並べると丁度良いんですね。素晴らしい。

  • @katuusagi
    @katuusagi Год назад +3

    メモリ効率を厳密にするなら確かに二分木が最強になるけど
    メモリを潤沢に使えるならハッシュテーブル最強なので
    そこまで踏み込んで第3回をやって欲しいぜ!

  • @renk1310
    @renk1310 Год назад +1

    18:08 水野さんが台本ブレイカーとして圧倒的な成長を見せた瞬間

  • @user-pg3tm5gh1r
    @user-pg3tm5gh1r Год назад +1

    二人ともめっちゃ頭いいから面白い

  • @yosshi--oq8et
    @yosshi--oq8et Год назад

    16:41
    素人からすると良さそうに見えちゃうの凄い分かる。

  • @mizutansan594
    @mizutansan594 Год назад +1

    ニョキニョキの描き方は最初を何にするかで形が全然違ってくるというのは、地図の正距方位図法が中心地点によって形が全然違ってくるのに似てますね。ニョキニョキも正距方位図法も元は同じものだし、全て同じやり方で記述しているのに。
    正距方位図法で地図を描いてくれるサイトがあるんですが、ぐるんぐるん動いて面白いです。

  • @himadajin
    @himadajin Год назад +5

    水野さんすげー

  • @algeot5132
    @algeot5132 Год назад +3

    ハフマン符号化の話は詳しく分かりませんが、二分探索木を実装する際には01の組み合わせでデータを保存するので、素晴らしい着眼ですね
    この話が終わったらセグ木やBITの話をして、それらの木とコンピュータとの相性の良さを語るのも一興ではないですか?

  • @kanametatsuya
    @kanametatsuya 9 месяцев назад +2

    19:56これどうやって計算してるんですか?
    22:30そうか、どっちに行くかを計算するんだから二択だ、、

  • @user-pd7fl3he5w
    @user-pd7fl3he5w Год назад

    木の通り数は、共通テストに出ると噂のカタラン数ですよね!なんでカタラン数になるかは知らんけど。
    水野さんが将来の木の回で自力でカタラン数にたどり着くのが楽しみです😄😄😄

  • @kueda4585
    @kueda4585 Год назад +1

    知識はハッキリとクッキリしたものであって応用はきかないが、知恵は緩やかに境界があいまいなもので捉えどころがないだけにいかようにもコントロールできると生徒たちには言い続けていますが、それと同じことがコンピュータサイエンスでもあるのですね。それを「やじろべえの精神」と生徒諸君には言っています。

  • @yutosuzuki5192
    @yutosuzuki5192 Год назад +8

    ゲームブックって、ランダムアクセスしてたんだな…

  • @user-dr2ws4fw6b
    @user-dr2ws4fw6b Год назад +2

    水野さんボケ倒してておもしろい

  • @falconno6554
    @falconno6554 Год назад

    30:32 ああ、それでいいんですね… このデータ構造を学んだとき、「あれぇ…データの入れ方で並び方変わるのでは…??  どうやって整列させるんだろう…??」と思っていました

  • @tamarind_kingdom
    @tamarind_kingdom Год назад +1

    トレードオフと創発の話、いつかシステムアーキテクチャ回でがっつりやってほしいです

  • @user-cf3rl4ww9s
    @user-cf3rl4ww9s Год назад

    この流れで再帰の話題も取り上げてほしい

  • @user-nk6ff1nw7w
    @user-nk6ff1nw7w Год назад +33

    12:40 チェが苗字でホンマンが名前だから「ホンマンって呼ぶな」ってツッコミは結構シュールな気がするw

    • @slowly_slowly11
      @slowly_slowly11 Год назад +3

      一般的に、チェ・ホンマンさんをチェで呼んだりホンマンで呼んだりしないよねって話じゃないですか?
      チェ・ホンマンさんの母国の人からしたらシュールそうですけどね

    • @HitYoutube
      @HitYoutube Год назад

      まあ外国でNo.1有名日本人の織田信長も「信長」と呼ばれてますしね。

    • @aqua372b
      @aqua372b Год назад

      ホンマン呼びは韓国では普通です。

    • @mizutansan594
      @mizutansan594 Год назад +4

      毛沢東を沢東と呼ぶ的な。

    • @hibaryllis
      @hibaryllis Год назад +2

      かつての冬ソナブームのとき、ペ・ヨンジュンと結婚したら苗字がペになる問題ってのがありましたね

  • @hirominakami9991
    @hirominakami9991 Год назад

    ふたまたニョキニョキのときは
    対象データが正規分布である。最初のデータが中央値に近いデータサンプルのときに、最も効率的な探索ができるってことですかね?
    例えば正規分布でも初回データが中央値から離れてたり、分散の度合いが平均値からズレて山が複数出たりすると、偏りが木の分かれ方で多段数が部分的に増えるとか…???
    表現が正しいかだいぶ怪しいですが…
    統計やDBの入門を勉強しようとしててリレーショナルの時と、じゃあ二分探索木がNoSQLで違い出てくるのかなぁとか、色々考えちゃいました…
    今後も動画楽しみにしてます!

  • @user-cp5wn2iu7z
    @user-cp5wn2iu7z Год назад +2

    水野さんの最後の気づきがあったのなら、もうライフゲームをやるしかないですね!

  • @user-ek9yz6dr6d
    @user-ek9yz6dr6d Год назад

    ちょうど二分探索木が課題だったから助かる

  • @nagasesion
    @nagasesion Год назад +2

    ランダムアクセスできる人とファイルより,マンションの集合ポストとかのほうがわかりやすい例えだったりしないかな…?(人間的にもある程度ランダムアクセスができるので,想像しやすそうかなと)

  • @nossy9475
    @nossy9475 Год назад +6

    探索も挿入もしやすい!すげぇ。
    最初に取り出す値で木構造が変わることは理解したのですが,データを削除・挿入した際に木構造を組み直す(最良を目指す)ことはするのでしょうか。
    アップデートってそういうこと?

    • @早川眠人
      @早川眠人 Год назад +4

      平衡木と云うのがその考え方

    • @himadajin
      @himadajin Год назад +5

      まさにそのとおりです
      32:00のような長細い木だと最大で2回分岐をたどる必要がありますが、
      32:20のような木だと分岐が1回で済むように、なるべく木の階層の数を小さくするほうが効率が良くなります
      削除・挿入時にルールを追加したり、木を組み替えることで効率の良い状態を維持し続けるアルゴリズムがあります(平衡二分探索木と調べると出てきます)

    • @HANEKAWAhaorenoyome
      @HANEKAWAhaorenoyome Год назад +6

      めっちゃ学びがあるコメントモメント!

    • @koi506
      @koi506 Год назад +3

      そこでゆる言放り込んで意味も通ってるの凄い

    • @surumeneco
      @surumeneco Год назад +1

      二分探索木は回転で簡単に整列できるのが良い所なんだなぁ

  • @kaz4381
    @kaz4381 Год назад +8

    ヒープ構造なんかだと左右の子はそれぞれ自分の番号*2+1(2)のアドレスに格納されるので、水野さんの言うハフマン符号的な考え方と殆ど同じなんじゃないでしょうか?

    • @EanaHufwe
      @EanaHufwe Год назад

      同じこと思った

  • @user-tv7yg2ze4t
    @user-tv7yg2ze4t 8 месяцев назад

    16:37 二分木を配列で扱うときの話としては本質な気がする

  • @AMIWsement
    @AMIWsement Год назад +8

    • @pc_1330
      @pc_1330 Год назад +1

      ぼやーんとしてよく分からなかったけど、この例え分かりやすいかも!

  • @okita0621
    @okita0621 Год назад +11

    水野さん185cmぐらいかなと思ってたけど178なのか、 結構ヒール高い靴履いてる?

  • @user-mv6pm1pc3o
    @user-mv6pm1pc3o Год назад +2

    機械工学科学卒の会社員で、面白く視て聴いてます。私は「出たー」=二人で伏線回収するヤ・ツーと見ています。       今回の巧妙な考え方「ふたまたニョキニョキ理論」ならぬ、【二分探索木】が、チョムスキが提唱した「ふたまたニョキニョキ理論」でなく【Xバースキーマ】理論の、特徴の一つ:句カテゴリの構造は全ての接点で「二股」に枝分かれすること:二股分かれ の原理 (binary branching principle)(他にも: 句構造は必ず句の核(主要部; Head)をもち ;主要部側とそうでないものとを二分木を利用して表現できると仮定する)と似ていて、「出たー」と脳がいっぱいアドレナリンを出して、興奮しています。

  • @korp0620
    @korp0620 Год назад +15

    7:11 Wikipediaは(二分木、二進木も)「ぎ」でした。

    • @HitYoutube
      @HitYoutube Год назад +2

      二分木は「ぎ」の一択だと思います「き」だと二分岐と同音になり同じ文脈で出てくるので混乱するから。

    • @knu2112
      @knu2112 Год назад

      -き だと「器」とも紛らわしいからですね。分類器とか生成器

  • @maroon7749
    @maroon7749 Год назад +9

    水野さんの結論,複雑系科学の本質ついててすごい

  • @pc_1330
    @pc_1330 Год назад

    二分探索木の概念、意外なとこに意外な観点が潜んでるのだなぁ、と思いました。めくるめくわ。
    ラングトンの蟻は、RUclips動画でもいろんなの上がってて面白かったですが、単純に一方向に伸びてくようなのだけでなくかなり複雑な図形を描くものもあるみたいですよ。
    (その分パラメーターの取り方とか複雑になっているのかもしれませんがちょっと私もそこまではわかりません。)
    話はズレますがラングトンの蟻って、原始の有機物の様々な組み合わせの試行から生命が生まれたり、ビッグバン以前の混沌の中から今の光とか時間とか重力とか物質とかいった言ったものを定義するこの宇宙の物理法則が生まれたこととか、そんな過程を垣間見れるような現象のように思えてゾクゾクしてしまいます。

  • @0DeN20m
    @0DeN20m Год назад +1

    単純なルールから複雑な構造が出るの ライフゲームだ!となった

  • @user-er5mj2dx8p
    @user-er5mj2dx8p Год назад +2

    理系の人桁数のことオーダーって言うよねっていう薄い認識が補強されてよかった

  • @uma_cryptids1803
    @uma_cryptids1803 Год назад +6

    11:02 計算機科学では木は下向きに生えるものだから......

    • @heibun
      @heibun Год назад +1

      Knuth先生もTAOCPの中で木って呼ぶわりに下向きに生えてるの不思議だよね(上に伸びていく図になるのが自然)と仰っていましたね。
      計算機科学から入るとシャバの感性が分からなくなって「木=下に生える」という常識が形成されてしまうのはCSあるあるなのかもしれません。

    • @tenkawakiirobou
      @tenkawakiirobou Год назад

      そう考えたらどっちかってっと根っこだよな

  • @anag3830
    @anag3830 Год назад +1

    二分木、むかーし昔に某タゴラ某イッチの作者によるプログラミングについての特番で知ったなぁ すごくおもしろかったけど録画がVHSだったからもう見る手段がない…

  • @user-hs7ep9re3v
    @user-hs7ep9re3v Год назад +1

    39:49 この辺の話で
    競走馬シミュレーションゲームのダービースタリオンを作った園部さんっていう人がいるんだけど
    この人がシリーズが進むにつれて競走馬のパラメータってどう増えて言ったんですか?みたいなこと聞かれて
    増やしてませんよ、むしろ減らせないかって常に考えてました
    パラメータが単純だから多種なバリエーションが生まれる 増やしてしまうと固定化されてしまうって言ってたの思い出しました。

  • @shijima9303
    @shijima9303 Год назад +1

    創発の話はオートマトンとかの複雑系に近いのかな

  • @Joi2O
    @Joi2O Год назад +2

    つまり……社員のファイルをゲームブックに変えてしまえばいい……ってコト!?!?

  • @hirominakami9991
    @hirominakami9991 Год назад +1

    ポインタのすごさって
    メモリに格納できる範囲のデータサイズのときだよね、直接指定できる凄さの認識あっているのか不安になる…
    数十万人のユーザ情報を全部メモリに乗せるのは難しいのかなと。これは当然DBですよね。
    それとは別に何か情報参照する上で、判断基準となる表があって、1Gバイト程度であればメモリに全部乗せてしまって、
    直接参照したほうがストレージにあるより早く処理ができるってことなのかなと…
    まぁ何度も呼び出すのかどうかとか、更新が入るのかどうかとかにもよるんだろうけど…
    どこにデータを置くのか、どういった構造なのか
    どういった時にそのデータを利用するのか
    結局そこらへんも含めて全部考えられる人がすごいプログラマーってことなんかね?

  • @hce4098
    @hce4098 Год назад +7

    にぶんたんさくぼく、かと思ってた。

  • @mtt1409
    @mtt1409 Год назад +2

    つまりある程度の制限があったほうが創造性が刺激されるってこと?

  • @user-fx8dc4gk6p
    @user-fx8dc4gk6p Год назад

    木を逆さにするといえばバオバブですね

  • @ionion2963
    @ionion2963 Год назад +1

    乱数上司ニキのかわいいポイントは常時上司であること。

  • @tshibuya3576
    @tshibuya3576 Год назад +3

    「オルグする」ウケる

  • @shengu4449
    @shengu4449 Год назад +6

    ページの左下や右下には、常にそのページの人よりも新人がくるから、182ページの左下に7が来ることは無いのでは
    182よりも大きい数が来る気がする

    • @tenkawakiirobou
      @tenkawakiirobou Год назад

      ある程度データが揃った後に木を組んでる想定だと思いますよ(たぶん判ってて言ってるとは思うけど…)

  • @user-tc2np2yo8p
    @user-tc2np2yo8p Год назад

    37:31 水野さん😆

  • @SonodaMai74
    @SonodaMai74 Год назад

    03:37
    >31番のデータを32番に、32番のデータを33番に
    それだと31番以降は全て31番のデータになってしまうじゃないですか!(という細かいツッコミ
    データ末番から31番までの順番でデータをコピーしていかないとからないのです……

  • @user-tz8eb8jt3r
    @user-tz8eb8jt3r Год назад +1

    全くの素人なので恐縮なのですが、社員ファイルに身長と体重が書かれている場合には二分探索木以外のデータ構造で扱うということでしょうか?

    • @user-zo9sq4oi3e
      @user-zo9sq4oi3e Год назад +2

      身長の問題と体重の問題の双方に答えるのが目的であれば、木を2つ作ればいいかと思います。
      検索は今まで通りできますし、追加の計算量は2倍ですが、定数倍なので変わらずΟ(logn)です。(ノードの中身を社員情報へのポインタとすれば、データはほとんど増えません)

  • @re-tos2887
    @re-tos2887 Год назад +9

    水野さんって常にちょっとマウント取りたい感があって、堀本さんは相手を尊重する態度が見受けられるからちょうどいい相性なんかな?って感じました

    • @user-fq5gv2zv9x
      @user-fq5gv2zv9x Год назад +9

      兄に対抗する弟(水野)と生意気な弟を暖かく見守る兄(堀本)に見えます。

    • @Aros417
      @Aros417 Год назад +2

      時と場合によって逆な時もある気がする

  • @SE-en6tx
    @SE-en6tx Год назад +3

    これって同値のデータが来たときどうやって処理するんだろう?
    分岐をもう一個増やしてくっつければ処理できそうだけど、それだと二分探索木じゃない気が…

    • @user-tw3fv5up8c
      @user-tw3fv5up8c 9 месяцев назад +1

      右左のどちらかに入れてあげればいいだけだと思いますよ〜。なのでもし同じデータが連続する場合左右に偏ることになって探索の最悪計算量がO(N)になっちゃいます😢 なのでそこを工夫した平衡二分探索木というものがあったりします。ご興味があればぜひ調べてみてください!

  • @256yayo
    @256yayo Год назад +4

    ハフマン符号というより、ノードの番号付けに近い気がする
    1
    10
    100
    101
    11
    110
    111
    これを二進数として読めば
    1
    2
    4
    5
    3
    6
    7
    自然数に一対一対応させられる

    • @chimkio
      @chimkio Год назад +1

      全く関係ない訳ではないなー、と思ってた

  • @acna-yx1nf
    @acna-yx1nf Год назад

    水野さんがドラゴンボール超 のモナカに見えて仕方ありません。ぜひ議題として取り上げていただきたいです。

  • @kawata111
    @kawata111 Год назад

    @有識者
    16:55
    ハフマンツリーのてっぺんって、動画だと1だったけど、0でもokなんですか?

    • @algeot5132
      @algeot5132 Год назад

      もちろんokです。理論上はどちらでもいいのですから。
      しかし実装にあたっては1スタートだと便利なのです。
      例えばpythonで実装するとき, 1-indexed なら子 i の親は i

  • @user-ff2iz8vp9v
    @user-ff2iz8vp9v Год назад +4

    30:15 C言語の難しさはポインタそのものというより,ポインタの文法事項だと思うの

  • @user-od5os4yo1f
    @user-od5os4yo1f Год назад +5

    堀元氏、しょっぱなから分岐予測に失敗

  • @qgb01362
    @qgb01362 Год назад

    エントロピーの話になってます。

  • @user-kj7xo4ei1b
    @user-kj7xo4ei1b Год назад +1

    最終的には本体は順番に追加して行って別途五十音順、身長順、年齢順など検索したい条件ごとの索引を用意する何とか大辞典が正解と。

  • @tenrai3065
    @tenrai3065 Год назад +1

    ラジオ作るのかぁ。今はDSPでの検波が主流だな。(ちがう、そうぢゃない

    • @HitYoutube
      @HitYoutube Год назад +1

      そだね、AMラジオなんて直接AD変換してデジタル処理できるようになったし。

  • @user-tw3fv5up8c
    @user-tw3fv5up8c 9 месяцев назад

    平衡二分探索木までは行かないんですね〜

  • @100EIZO
    @100EIZO Год назад

    前日にゆる学徒カフェの連濁の話を聞いた後なので、「また?」って思った

  • @user-jp9mc6bw5g
    @user-jp9mc6bw5g Год назад

    19:50 理想的な配置での話であれば、ノードは終点だけでなく各分岐にも存在するので最大13回では?

    • @HitYoutube
      @HitYoutube Год назад

      実際には最大9999回ですね。全部最初より大きいのを挿入していったらそうなる。
      現実的には13の2倍以内くらいのパフォーマンスになるかと思います。

    • @user-gh2wo4ld6s
      @user-gh2wo4ld6s Год назад +1

      @@HitRUclipsコメ主さんは分岐の偏りがない理想的な配置の話をされてますよ

  • @yuhsylphy
    @yuhsylphy Год назад

    上から0,1,10,11,100,...って番号付けするのはまさにヒープ構造じゃないです?
    場合によってはページの抜けを許して、吊るす位置に適したポケットに書類を入れることでも二分探索木を構築できそう。
    ただそれだと最悪2^nページ用意しとかなきゃならないんで、空間のコストが酷いことになりますが。
    二分探索木においての1ノードは唯一の親と0から2個の子を持ちますが、それが複数集まると子の数が増えてしまうのでフラクタルとは言わないような気がしますね。
    一般の木だと子がいくつでも良いのでフラクタルと言っても良さそう。
    あとは木構造やポインタの領域を確保することで容量を犠牲にするトレードオフになってるんだよ、みたいな話が欲しかった気がしますね。平均、最悪計算量の話とともに是非いつか補足回を期待します。

  • @user-dk9zt2nf6n
    @user-dk9zt2nf6n Год назад

    ロマネスコはフィボナッチでは?

  • @HANEKAWAhaorenoyome
    @HANEKAWAhaorenoyome Год назад +4

    Cは避けて通れないんですかね?
    今はPHP(Laravel)・Ruby(Rails)・JS(next.js)を学習したところですが、さすがにC言語を学習する積極的な理由が思いつきません😅

    • @user-dv5ik1wn2e
      @user-dv5ik1wn2e Год назад +2

      暇があるなら触れておくことをお勧めします
      C、C++までやっておくと、抽象度の高い言語でもどういう実装で動いているか想像しやすくなり
      言語のなぞ制約がなぜ必要かわかったり、処理の重さが感じ取れたりします

    • @soo805
      @soo805 Год назад +2

      実際の具体的な命令を覚える必要はないですが用語類だけでも抑えておくと役立つ事は多いかもです
      大学学部の授業で1年齧っただけでしたが別言語の習得やらメモリ管理感覚に繋がったとおもいます

    • @HitYoutube
      @HitYoutube Год назад +2

      ハードウェアまで動かそうとすると、まだまだCやC++がメジャーだと思います。
      Cだとmalloc()みたいな後発言語では隠蔽されている過程も書かないとならないし、ハードウェア資源直結型言語だと思います。

    • @別部穢麻呂
      @別部穢麻呂 Год назад +1

      Cを勉強することを推奨する意見ばかりなので、逆も書いてみようと思います。
      皆さんが書かれている目的なら、Cを勉強した方がよいですが、少なくともアルゴリズムとデータ構造を勉強するだけなら、PHPでもRubyでもJSでも十分だと思います。
      ただし、以下の条件付きです。
      - 言語のライブラリーで最初から用意されているのを無視して、あえて自前で作って見ること
      - 上記の理由もあり、フレームワークは使わず、コンソールアプリで学ぶべきです。PHPもJSもコンソールアプリを作ることは可能ですが、Ruby(もちろん、Railsは使わない)の方が普通かと思います。
      なお、書籍等で本格的にアルゴリズムとデータ構造を学ぶなら、C、Java、Pythonの方が適切かもしれません。

    • @HitYoutube
      @HitYoutube Год назад

      @@別部穢麻呂 確か自分がアルゴリズムとデータ構造を勉強したときの言語はPascalでした。今ならPythonかのうネスト=インデントが好きじゃないけど。