21 Weird Ways to Say Hello, World! 1,000,000 Times [English Subtitles]

Поділитися
Вставка

КОМЕНТАРІ • 108

  • @karikarikarisan
    @karikarikarisan 5 місяців тому +477

    言語に縛りがないなら「おばあちゃん」に「LINE」というエディタを用いて「日本語」という言語で「Hello Worldと100万回送信して」と命令すれば時間はかかるけど100万回出力してくれるよ。

    • @kuniko925
      @kuniko925 5 місяців тому

      pyautoguiでpythonのプログラムからできるお^^

    • @T-kun05
      @T-kun05 5 місяців тому +140

      送り終える前に旅立つて

    • @Jack-ci3je
      @Jack-ci3je 5 місяців тому +116

      コンピューターおばあちゃん(物理)

    • @眼-d6j
      @眼-d6j 5 місяців тому +43

      鬼畜外道

    • @richard-gj8fs
      @richard-gj8fs 5 місяців тому +19

      1秒1メッセージでも2週間弱かかるのか…(困惑)

  • @sabiaka_13
    @sabiaka_13 4 місяці тому +14

    Unity二キシンプルなのにかしこすぎて感動した

  • @unknown00kuv
    @unknown00kuv 5 місяців тому +48

    最後の方法を見ると「やっぱりC言語って凄いなー」って思う(小並感

  • @ym-gd2mx
    @ym-gd2mx Місяць тому +4

    最後の方法末尾再帰感があって結構すき

  • @tannnu_eva
    @tannnu_eva 4 місяці тому +27

    プログラミングよく知らないけど、たったこれだけでこんなに色んな解法が出てくるのおもろいな

  • @名字名前-s8t
    @名字名前-s8t 4 місяці тому +5

    毎回の「へへ、そんなの簡単だよ」がくせになってだんだん可愛く感じてきた

  • @新野ユキ
    @新野ユキ 5 місяців тому +30

    当時参加してました!面白かったのです!

  • @KawaiiNegi-
    @KawaiiNegi- 4 місяці тому +7

    最初にことごとく別解を潰してくの好き

  • @seokgukim
    @seokgukim 5 місяців тому +21

    おもろいネタですね。Pythonの機能しか考えてませんでした。

  • @NumAniCloud
    @NumAniCloud 2 місяці тому +2

    なんてエレガントな「チャンネル登録お願いします」なんだ……
    戻り先いじるのは衝撃的だったw 「忘れろ」も、そりゃそうだ

  • @niconico25253
    @niconico25253 5 днів тому

    覚えておくのはいいけど書くのは絶対に辞めてほしいコードが盛りだくさんで面白かった

  • @エピネフリン-r8i
    @エピネフリン-r8i 5 місяців тому +8

    Pythonistaだから文字列掛け算かネスト関数か標準出力でどうこうするくらいしか思いつかなかったよ…
    マクロでごちゃごちゃする方法は面白かったし、Haskellは生まれて初めて見た。
    c/c++はコンピュータのヤバいところまで弄れて面白いなあ🤣

  • @ddw5111
    @ddw5111 4 місяці тому +28

    メモリ直接弄ってる辺りはC言語らしさ全開で笑った

  • @Gajum4ru
    @Gajum4ru 4 місяці тому +7

    最後すご

  • @NasuWatamate
    @NasuWatamate 4 місяці тому +9

    関数の帰還アドレスをいじるやつ凄いな…
    送信元アドレスいじってパケット大量に送りつける系の攻撃に似てると感じた…

  • @fuyuno3703
    @fuyuno3703 4 місяці тому +3

    Quine 利用かなと思ったらやっぱりそういう方法多いですね。あと、20番思いついた人すごい

  • @pablo1gustavo
    @pablo1gustavo 5 місяців тому +27

    I like this type of video! Thanks! Waiting for more

    • @evimalab
      @evimalab  5 місяців тому +7

      You're welcome! I'll definitely try to make more videos about general programming. Well, this one is not really "general," though...

    • @roeniss
      @roeniss Місяць тому +1

      Same here. this type of videos are so unique and joyful. I want more!

  • @dasigaratarou
    @dasigaratarou 5 місяців тому +12

    brainfu*kでやりたくなるね…

  • @なんたら-q1x
    @なんたら-q1x 4 місяці тому +5

    TeXあの人かなと思ったらあの人だった☃

  • @あうら-g2j
    @あうら-g2j 4 місяці тому +7

    もしかして……(1..1000000).each(hello_world)的な、範囲オブジェクトの高階メソッドに処理を渡す系のプログラムは禁止されていない?

    • @evimalab
      @evimalab  4 місяці тому +3

      はい。(禁止事項に表面上触れなければ問題ありません。)

  • @readme-exe
    @readme-exe 5 місяців тому +8

    黒魔術、、、

  • @紅茶-v8x
    @紅茶-v8x Місяць тому

    どれもこれもが 美しいコードで脱帽

  • @Chouky-wo2gt
    @Chouky-wo2gt 5 місяців тому +4

    Наконец-то нашел нормальный гайд по Hello world

  • @khoitan4758
    @khoitan4758 5 місяців тому +6

    It has been a while since your last long-format video!

  • @Justy-heart
    @Justy-heart 4 місяці тому +1

    最後のやつ、グローバル変数ってこう使うんやな……

  • @d1Prczr6b29eM82Y
    @d1Prczr6b29eM82Y 5 місяців тому +7

    世の中には変態が多いんだなぁ 11:50 100万になるまで動画投稿するってのはどう?

    • @evimalab
      @evimalab  5 місяців тому +4

      頑張ります。

    • @クリスハロウィン
      @クリスハロウィン Місяць тому

      @@evimalab
      V = [/* 動画のネタを入力 */]
      for item in V:
      N = number of subscribers now
      if N >= 1000000:
      post ('100万人達成しました!爆弾解除!')
      else:
      post (item)

  • @Yurufuwa8192
    @Yurufuwa8192 2 місяці тому

    別のコードでtxtファイルに100万回「Hello World!」て入力したのを
    本題のコードで読み取ればいいんじゃない?

  • @kumamonslayer
    @kumamonslayer 4 місяці тому +1

    オチ好き

  • @JD-is8yg
    @JD-is8yg 5 місяців тому +3

    品評会会場はここですか

  • @sarutobide_nue_shite
    @sarutobide_nue_shite 4 місяці тому +1

    個人的には17が好き

  • @tamakko_pippi
    @tamakko_pippi 4 місяці тому

    50万表示する関数と名前の違う50万表示する関数でできそうw

  • @中二ヤミナベ
    @中二ヤミナベ 4 місяці тому +1

    HQ9+「H」
    BrainCrash「」

    • @中二ヤミナベ
      @中二ヤミナベ 4 місяці тому

      ブレインクラッシュ間違ってるかもしれない

  • @Ryot4ro
    @Ryot4ro 5 місяців тому +1

    スパコンで100万並列しよう

    • @エピネフリン-r8i
      @エピネフリン-r8i 5 місяців тому +5

      いいアイデアだ!
      ところで…どうやってスレッドを100万個起動するんだい?

    • @ccxxii7816
      @ccxxii7816 Місяць тому +1

      ラズパイなら100万個用意するのも比較的楽か?

  • @hurgel1400
    @hurgel1400 5 місяців тому +1

    インターバル実行出来れば…

  • @RWING1971
    @RWING1971 4 місяці тому +1

    すごいなぁ、と思うけど、判読性が悪くて、デバッグやメンテナンスは大変

  • @TCzvrAw3o7H
    @TCzvrAw3o7H 8 днів тому

    標準入力リダイレクトして百万回打てばよくね?

  • @rejafdofs
    @rejafdofs 3 місяці тому +1

    Block[{$RecurasionLimit=1000000},(Print["helloworld"];#[#])&[(Print["helloworld"];#[#]])&]を思いついた

  • @noff6451
    @noff6451 Місяць тому +2

    最初に思い浮かべた方法が出てこなかった
    自身への関数ポインタを受け取って呼び出すことを普通は再帰と呼ばないから要件を満たしていると思う
    ```c
    #include
    struct S_F;
    typedef void (*p_hello)(struct S_F*, int);
    typedef struct S_F { p_hello f; } F;
    void hello(F *f, int c) {
    if (c >= 1000000) return;
    printf("Hello, World!
    ");
    f->f(f, c + 1);
    }
    int main(int argc, char **argv) {
    F f;
    f.f = hello;
    hello(&f, 0);
    }
    ```

  • @主体-x3m
    @主体-x3m 5 місяців тому +10

    TeXの読み方は「テフ」では?

    • @evimalab
      @evimalab  5 місяців тому +27

      ua-cam.com/video/8HuwiBPLV3A/v-deo.html TeXの開発者本人の発音がこの動画の最初の1秒で聞けます。

    • @まくぽっち
      @まくぽっち 5 місяців тому +3

      古典ギリシア語だと「ㇰ」で、現代ギリシャ語だと「ㇷ」

    • @あると-m3r
      @あると-m3r 4 місяці тому +3

      調べた感じ、テフ読みは日本だけらしい。
      τεχνικήから来てるとのこと。

  • @入佐凛
    @入佐凛 5 місяців тому +1

    おもろい

  • @どみ-r4y
    @どみ-r4y 5 місяців тому +1

    seq 1000000 | xargs -I{} echo Hello,Word!
    これもいいのかな?

  • @hbenpitsu73
    @hbenpitsu73 5 місяців тому +22

    再帰呼び出しは本当にスタックオーバーフローしそうw
    詳しくないから間違ってても怒らないで(予防線)

    • @evimalab
      @evimalab  5 місяців тому +13

      デフォルトのスタックサイズ (例えばLinuxでは8MB)で100万回再帰したらまず間違いなくスタックオーバーフローすると思いますが、スタックサイズを増やせば(ulimit -s unlimitedなど)問題なく動作するはずです。

    • @kettle9265
      @kettle9265 5 днів тому

      世の中には末尾再帰ってものがあってだね…

  • @ゆぬゆぬ
    @ゆぬゆぬ 5 місяців тому +17

    i love you でやってみようと思います。

  • @ДмитрийСтрахаль
    @ДмитрийСтрахаль 5 місяців тому +12

    Solution like in Haskell is possible for any language that supports lambdas
    Like that:
    auto twice(auto f) {
    return [=](){f(); f();};
    }
    // Somewhere else
    twice(twice(twice([](){cout

    • @ramnie6999
      @ramnie6999 5 місяців тому +2

      The key trick of the Haskell solution is that you can pass one of your "repeater" functions to another (or the same) repeater function to get the effect of exponentiation. For example, (five five) is a function that repeats the given function 3125 times. For this to work, your repeater functions need to have the same return type as the argument type, which in turn requires the use of std::function or something similar when using a language that gives a different type to each lambda.

    • @ДмитрийСтрахаль
      @ДмитрийСтрахаль 5 місяців тому +2

      @@ramnie6999 Ok, i did a couple experiments, and: In dynamic languages it works easy, in Rust it refused to work until i moved functions into Box, in C++ it required std::function. Maybe Haskell being a static typed language allows such thing because of immutability

  • @electro6290jp
    @electro6290jp 2 місяці тому +6

    コンストラクタ解法ほんとすき

  • @ニケ-f4t
    @ニケ-f4t 5 місяців тому +13

    こういうの好き

  • @小野凌太郎
    @小野凌太郎 5 місяців тому +46

    ワイ、なんとなくIT志望で就活してっけどこれ理解出来なきゃあかんやつか?

    • @fuha5681
      @fuha5681 5 місяців тому +63

      忘れろ

    • @user-gk5il9mc4v
      @user-gk5il9mc4v 5 місяців тому +17

      ​@@fuha5681
      一言「忘れろ」とだけ言い残していくの強者感あって好き

    • @woodburned8972
      @woodburned8972 5 місяців тому +16

      自然に理解していくもんやで(沼に引きずり込みたいオタク)

    • @luke0804
      @luke0804 5 місяців тому +22

      これが出来なくても全然問題ないけど、こういうのが楽しめると仕事に対する考え方が変わるかもね
      こんなに面白いことをお金をもらいながらできるとか最高か??って毎日思ってる

    • @haru-leit
      @haru-leit 5 місяців тому +3

      何となくのIT志望って正直続かないと思うんだが...

  • @NyanBuzz
    @NyanBuzz 3 місяці тому +2

    Cを投げ捨てて真っ先にyesとか言語作るとかだなあ(すでに繰り返してくれるものを利用する)と思ったけど
    そうだよね、思考実験だから計算リソース(ulimit)無限だよね

  • @kCat-c9b
    @kCat-c9b 5 місяців тому +11

    Processingとかだとdraw関数内でprintlnすれば毎フレーム表示されるか

  • @kimuti_tsukai
    @kimuti_tsukai 5 місяців тому +3

    Rust には loop 文があるんだぜ

  • @warokihami
    @warokihami 4 місяці тому +2

    これバイナリは大差ないよな。。。

  • @ccxxii7816
    @ccxxii7816 16 днів тому

    powershellでksみたいな方法でできちまったけど他の言語ならもっとスマートに行けそう
    @(1..1000000) -replace "\d+","Hello,World!"

  • @HarusameTech
    @HarusameTech 4 місяці тому +9

    個人的にこれが割とシンプルで好きだったんだけどレギュ的にどうなんだろ
    ```c
    #define A puts("Hello, world!
    );
    #define B A A A A A A A A A A // 10 回
    #define C B B B B B B B B B B // 100 回
    #define D C C C C C C C C C C // 1000 回
    #define E D D D D D D D D D D // 10000 回
    #define F E E E E E E E E E E // 100000 回
    #define G F F F F F F F F F F // 1000000 回
    int main(void) {
    G
    return 0;
    }
    ```

    • @evimalab
      @evimalab  4 місяці тому +4

      もちろん合法です。解法3(f(f(f(f(f(f(puts("Hello World!");)))))))とほぼ同じと考えてフィーチャーしませんでしたが、もったいなかったかもしれません。

  • @YOMA8338
    @YOMA8338 5 місяців тому +2

    Javaで実践した人いないかな

  • @Nunununununununununununununuu
    @Nunununununununununununununuu 23 дні тому

    え?。。

  • @Scr_MIYUKINNGU
    @Scr_MIYUKINNGU 5 місяців тому +2

    はえぇ〜
    なんかすごいなぁ
    覚えておこ