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

Sdílet
Vložit
  • čas přidán 23. 07. 2024
  • 「データ構造」シリーズの第2回。「データ構造におけるふたまたニョキニョキは二分探索木」「木構造で素早く社員を見つける方法」「シンプルなルールから豊かなものが生まれる」など、二分探索木の仕組みから実用方法まで話しています。
    【目次】
    0:00 いいルールは厳しい?甘い?
    1:39 ふたまたニョキニョキの前におさらい
    4:56 データ構造にもふたまたニョキニョキ
    6:04 トレードオフの最適解「二分探索木」
    8:17 ファイルの中身をぶら下げていく?
    16:36 ハフマン符号化に自力でたどり着く
    19:12 ふたまたニョキニョキはどれだけ優秀?
    23:58 社員のファイルを木構造にする方法
    28:11 C言語がポインタを扱う理由
    30:19 ふたまたニョキニョキは何パターン?
    34:27 ちょうどいいルールが豊かさを生み出す
    45:31 みんなも聖書を読もう
    【参考文献のリンク】
    ○アルゴリズムとデータ構造
    amzn.to/3FJSIsN
    聖書。非プログラマーが読むのはややキツいが、絶対古くならない名著。
    【サポーターコミュニティ加入はこちらから】
    yurugengo.com/support
    【親チャンネル:ゆる言語学ラジオ】
    / @yurugengo
    【フランチャイズプロジェクト:ゆる学徒ハウス】
    / @yurugakuto
    【おたよりフォーム】
    forms.gle/BLEZpLcdEPmoZTH4A
    ※皆様からの楽しいおたよりをお待ちしています!
    【お仕事依頼はこちら!】
    yurugengo@gmail.com
    【堀元見プロフィール】
    慶應義塾大学理工学部卒。専門は情報工学。WEBにコンテンツを作り散らかすことで生計を立てている。現在の主な収入源は「アカデミックに人の悪口を書くnote有料マガジン」。
    Twitter→ / kenhori2
    noteマガジン→note.com/kenhori2/m/m125fc452...
    個人CZcams→ / @kenhorimoto2203
    【水野太貴プロフィール】
    名古屋大学文学部卒。専門は言語学。
    某大手出版社で編集者として勤務。言語学の知識が本業に活きてるかと思いきや、そうでもない。
    #データ構造 #ゆるコンピュータ科学ラジオ

Komentáře • 189

  • @yurucom
    @yurucom  Před rokem +5

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

  • @nanakiai
    @nanakiai Před rokem +48

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

  • @Ethereal-Wind
    @Ethereal-Wind Před rokem +36

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

  • @user-ry5tn6vs2l
    @user-ry5tn6vs2l Před rokem +27

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

    • @user-ry5tn6vs2l
      @user-ry5tn6vs2l Před rokem +3

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

  • @floatum4941
    @floatum4941 Před rokem +114

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

    • @kacky3219
      @kacky3219 Před rokem

      czcams.com/video/ugPrgVrR6ag/video.html
      これで分かる

    • @theuserhasnoname4783
      @theuserhasnoname4783 Před rokem +6

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

    • @HitYoutube
      @HitYoutube Před rokem +2

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

  • @hydadesign2490
    @hydadesign2490 Před rokem +29

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

    • @hydadesign2490
      @hydadesign2490 Před rokem +1

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

  • @simatani
    @simatani Před rokem +73

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

    • @user-qwertyu1op
      @user-qwertyu1op Před 2 měsíci +2

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

  • @sabak7390
    @sabak7390 Před rokem +41

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

  • @knngayr
    @knngayr Před rokem +31

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

  • @kensuketomioka2321
    @kensuketomioka2321 Před rokem +35

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

  • @user-hu6zv1zg8y
    @user-hu6zv1zg8y Před rokem +39

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

  • @kaoruuuuun
    @kaoruuuuun Před rokem +21

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

  • @mudaso-heavy-user
    @mudaso-heavy-user Před rokem +3

    楽しみに待ってました

  • @tikin315
    @tikin315 Před rokem +3

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

  • @user-di6im3gi2b
    @user-di6im3gi2b Před rokem +10

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

  • @westmountain5428
    @westmountain5428 Před rokem +7

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

  • @norirumi8644
    @norirumi8644 Před rokem +20

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

  • @lefthand3754
    @lefthand3754 Před rokem +8

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

  • @ysdytk
    @ysdytk Před rokem +72

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

    • @hiroya1192
      @hiroya1192 Před rokem +5

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

    • @extukusu
      @extukusu Před rokem +1

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

    • @HitYoutube
      @HitYoutube Před rokem

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

    • @osirkov5238
      @osirkov5238 Před rokem

      ほんとうだw

    • @chimkio
      @chimkio Před rokem

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

  • @aderia_karimera2
    @aderia_karimera2 Před rokem +11

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

  • @user-wy9si4he3x
    @user-wy9si4he3x Před rokem +13

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

    • @HitYoutube
      @HitYoutube Před rokem +2

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

    • @kszy4793
      @kszy4793 Před rokem +2

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

  • @yuyasato4132
    @yuyasato4132 Před rokem +2

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

  • @gensho7120
    @gensho7120 Před rokem +3

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

  • @kyoh86
    @kyoh86 Před rokem +3

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

  • @user-byakko
    @user-byakko Před rokem +31

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

  • @user-rf4rp4ci2r
    @user-rf4rp4ci2r Před rokem +15

    水野さんの記憶力すげー

  • @user-iv1do8ii4n
    @user-iv1do8ii4n Před rokem +5

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

    • @user-iv1do8ii4n
      @user-iv1do8ii4n Před rokem +3

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

  • @user-hf1mi8ko4e
    @user-hf1mi8ko4e Před rokem +1

    すごい面白いw

  • @256yayo
    @256yayo Před rokem +6

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

  • @yassu3015
    @yassu3015 Před rokem

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

  • @applejack0094
    @applejack0094 Před rokem +3

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

  • @micty392
    @micty392 Před rokem +7

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

    • @RyuseiYamaguchi
      @RyuseiYamaguchi Před rokem +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 Před rokem +4

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

  • @user-dw7xv3ff6m
    @user-dw7xv3ff6m Před rokem +1

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

  • @haruka_52
    @haruka_52 Před rokem +5

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

    • @benikoji3
      @benikoji3 Před rokem +2

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

  • @to_lz144
    @to_lz144 Před rokem +2

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

  • @mozhigengo9479
    @mozhigengo9479 Před rokem +4

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

  • @katuusagi
    @katuusagi Před rokem +3

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

  • @yosshi--oq8et
    @yosshi--oq8et Před rokem

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

  • @mizutansan594
    @mizutansan594 Před rokem +1

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

  • @iou_256
    @iou_256 Před rokem +7

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

  • @user-pd7fl3he5w
    @user-pd7fl3he5w Před rokem

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

  • @renk1310
    @renk1310 Před rokem +1

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

  • @algeot5132
    @algeot5132 Před rokem +3

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

  • @user-pg3tm5gh1r
    @user-pg3tm5gh1r Před rokem +1

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

  • @kueda4585
    @kueda4585 Před rokem +1

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

  • @falconno6554
    @falconno6554 Před rokem

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

  • @tamarind_kingdom
    @tamarind_kingdom Před rokem +1

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

  • @user-hu8yo1pu9w
    @user-hu8yo1pu9w Před rokem +9

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

  • @user-ek9yz6dr6d
    @user-ek9yz6dr6d Před rokem

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

  • @user-cf3rl4ww9s
    @user-cf3rl4ww9s Před rokem

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

  • @himadajin
    @himadajin Před rokem +5

    水野さんすげー

  • @kanametatsuya
    @kanametatsuya Před 9 měsíci +2

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

  • @user-dr2ws4fw6b
    @user-dr2ws4fw6b Před rokem +2

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

  • @nagasesion
    @nagasesion Před rokem +2

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

  • @yutosuzuki5192
    @yutosuzuki5192 Před rokem +8

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

  • @user-tv7yg2ze4t
    @user-tv7yg2ze4t Před 8 měsíci

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

  • @user-er5mj2dx8p
    @user-er5mj2dx8p Před rokem +2

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

  • @0DeN20m
    @0DeN20m Před rokem +1

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

  • @nossy9475
    @nossy9475 Před rokem +6

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

    • @早川眠人
      @早川眠人 Před rokem +4

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

    • @himadajin
      @himadajin Před rokem +5

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

    • @HANEKAWAhaorenoyome
      @HANEKAWAhaorenoyome Před rokem +6

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

    • @koi506
      @koi506 Před rokem +3

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

    • @surumeneco
      @surumeneco Před rokem +1

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

  • @user-nk6ff1nw7w
    @user-nk6ff1nw7w Před rokem +33

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

    • @slowly_slowly11
      @slowly_slowly11 Před rokem +3

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

    • @HitYoutube
      @HitYoutube Před rokem

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

    • @aqua372b
      @aqua372b Před rokem

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

    • @mizutansan594
      @mizutansan594 Před rokem +4

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

    • @hibaryllis
      @hibaryllis Před rokem +2

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

  • @user-cp5wn2iu7z
    @user-cp5wn2iu7z Před rokem +2

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

  • @pc_1330
    @pc_1330 Před rokem

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

  • @user-hs7ep9re3v
    @user-hs7ep9re3v Před rokem +1

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

  • @kaz4381
    @kaz4381 Před rokem +8

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

  • @maroon7749
    @maroon7749 Před rokem +9

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

  • @mtt1409
    @mtt1409 Před rokem +2

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

  • @anag3830
    @anag3830 Před rokem +1

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

  • @hirominakami9991
    @hirominakami9991 Před rokem

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

  • @shijima9303
    @shijima9303 Před rokem +1

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

  • @AMIWsement
    @AMIWsement Před rokem +8

    • @pc_1330
      @pc_1330 Před rokem +1

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

  • @okita0621
    @okita0621 Před rokem +11

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

  • @korp0620
    @korp0620 Před rokem +15

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

    • @HitYoutube
      @HitYoutube Před rokem +2

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

    • @knu2112
      @knu2112 Před rokem

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

  • @kawata111
    @kawata111 Před rokem

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

    • @algeot5132
      @algeot5132 Před rokem

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

  • @user-mv6pm1pc3o
    @user-mv6pm1pc3o Před rokem +2

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

  • @tshibuya3576
    @tshibuya3576 Před rokem +3

    「オルグする」ウケる

  • @ionion2963
    @ionion2963 Před rokem +1

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

  • @SonodaMai74
    @SonodaMai74 Před rokem

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

  • @Joi2O
    @Joi2O Před rokem +2

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

  • @user-fx8dc4gk6p
    @user-fx8dc4gk6p Před rokem

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

  • @shengu4449
    @shengu4449 Před rokem +6

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

    • @tenkawakiirobou
      @tenkawakiirobou Před rokem

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

  • @uma_cryptids1803
    @uma_cryptids1803 Před rokem +6

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

    • @heibun
      @heibun Před rokem +1

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

    • @tenkawakiirobou
      @tenkawakiirobou Před rokem

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

  • @acna-yx1nf
    @acna-yx1nf Před rokem

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

  • @user-tc2np2yo8p
    @user-tc2np2yo8p Před rokem

    37:31 水野さん😆

  • @SE-en6tx
    @SE-en6tx Před rokem +3

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

    • @user-tw3fv5up8c
      @user-tw3fv5up8c Před 9 měsíci +1

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

  • @user-tz8eb8jt3r
    @user-tz8eb8jt3r Před rokem +1

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

    • @user-zo9sq4oi3e
      @user-zo9sq4oi3e Před rokem +2

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

  • @user-kj7xo4ei1b
    @user-kj7xo4ei1b Před rokem +1

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

  • @re-tos2887
    @re-tos2887 Před rokem +9

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

    • @user-fq5gv2zv9x
      @user-fq5gv2zv9x Před rokem +9

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

    • @Aros417
      @Aros417 Před rokem +2

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

  • @hce4098
    @hce4098 Před rokem +7

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

  • @user-jp9mc6bw5g
    @user-jp9mc6bw5g Před rokem

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

    • @HitYoutube
      @HitYoutube Před rokem

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

    • @user-gh2wo4ld6s
      @user-gh2wo4ld6s Před rokem +1

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

  • @hirominakami9991
    @hirominakami9991 Před rokem +1

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

  • @user-ff2iz8vp9v
    @user-ff2iz8vp9v Před rokem +4

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

  • @qgb01362
    @qgb01362 Před rokem

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

  • @user-tw3fv5up8c
    @user-tw3fv5up8c Před 9 měsíci

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

  • @tenrai3065
    @tenrai3065 Před rokem +1

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

    • @HitYoutube
      @HitYoutube Před rokem +1

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

  • @lovesick4032
    @lovesick4032 Před rokem +1

    複雑な構造、単純な規則

  • @Summer_Kun
    @Summer_Kun Před rokem +1

    「二分探索木が最高」二分探索木飢饉とかがあった国の諺かなぁ。

  • @toneryo
    @toneryo Před rokem +1

    ふたまたに分かれる。つまりデカルトみということ。

  • @100EIZO
    @100EIZO Před rokem

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

  • @HANEKAWAhaorenoyome
    @HANEKAWAhaorenoyome Před rokem +4

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

    • @user-dv5ik1wn2e
      @user-dv5ik1wn2e Před rokem +2

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

    • @soo805
      @soo805 Před rokem +2

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

    • @HitYoutube
      @HitYoutube Před rokem +2

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

    • @Zennin2007
      @Zennin2007 Před rokem +1

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

    • @HitYoutube
      @HitYoutube Před rokem

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

  • @marlyak8544
    @marlyak8544 Před rokem

    岩波探索木で初手左に行ってるから無理じゃないか?