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

แชร์
ฝัง
  • เผยแพร่เมื่อ 25 มิ.ย. 2024
  • Without using for, while, goto, or recursion, I list many ways to achieve 1,000,000 iterations in C language (and others).
    Compilation of about 50 solutions submitted on X (Twitter).
    Original video: • ループや再帰なしで100万回Hello, W...
    0:00 Intro
    0:41 About this video
    1:22 Solution 0. Arbitrary command execution
    1:54 Solution 1. Alternatives to goto
    2:06 Solution 2. Nested functions
    2:33 Solution 3. Nested macros
    2:41 Solution 4. include _FILE_ + ifdef
    3:49 Solution 5. include _FILE_ + _INCLUDE_LEVEL_
    4:11 Solution 6. (C++) string concatenation
    4:27 Solution 7. memcpy
    4:50 Solution 8. (Haskell) Higher-order functions
    5:18 Solution 9. Nested structs
    5:57 Solution 10. Fork bomb
    6:33 Solution 11. (Shell) yes
    7:06 Solution 12. (C?) ASM
    7:23 Solution 13. (C#, Unity) Debug.Log
    7:53 Solution 14. (TeX)
    omannumeral1000000000
    8:33 Solution 15. (C++) Constructor
    8:58 Solution 16. (C++) std::copy + std::iterator
    9:31 Solution 17. (C++, Windows) std::fill machine code
    10:07 Solution 18. Pseudo-recursion by execl
    10:42 Solution 19. Pseudo-recursion by signal
    11:06 Solution 20. Pseudo-recursion by manipulating stack frame
    Sources
    1. / 1761356736211116475
    4. / 1760627640514551924
    5. / 1761683709160489094
    6. Comment by @aiueokakikukeko211 on the original video ( • ループや再帰なしで100万回Hello, W... )
    7. / 1761432598155550765
    8. / 1761006337201504563
    9. / 1761473954706022791 (modified)
    10. / 1761042293052911617
    11. / 1761362014289756291
    12. / 1761410659986866558
    13. / 1761366941317710243
    14. / 1761057143560843680
    (Article: zrbabbler.hatenablog.com/entr...)
    15. / 1761339306579309010
    16. / 1760629869862596647
    17. / 1761632036165652781
    18. / 1761681997133758780
    19. / 1761642924411093214
    20. / 1761400003099234770
    X: / evima0
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 89

  • @karikarikarisan
    @karikarikarisan 2 หลายเดือนก่อน +374

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

    • @kuniko925
      @kuniko925 2 หลายเดือนก่อน

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

    • @T-kun05
      @T-kun05 2 หลายเดือนก่อน +113

      送り終える前に旅立つて

    • @Jack-ci3je
      @Jack-ci3je 2 หลายเดือนก่อน +88

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

    • @user-jc4qq5ot9n
      @user-jc4qq5ot9n 2 หลายเดือนก่อน +33

      鬼畜外道

    • @richard-gj8fs
      @richard-gj8fs 2 หลายเดือนก่อน +12

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

  • @user-gl2ii7ji2q
    @user-gl2ii7ji2q 2 หลายเดือนก่อน +24

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

  • @tannnu_eva
    @tannnu_eva หลายเดือนก่อน +19

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

  • @ddw5111
    @ddw5111 หลายเดือนก่อน +5

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

  • @unknown00kuv
    @unknown00kuv 2 หลายเดือนก่อน +36

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

  • @user-ky3kg1yy4w
    @user-ky3kg1yy4w 2 หลายเดือนก่อน +10

    こういうの好き

  • @seokgukim
    @seokgukim 2 หลายเดือนก่อน +16

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

  • @sabiaka_13
    @sabiaka_13 หลายเดือนก่อน +2

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

  • @Gajum4ru
    @Gajum4ru หลายเดือนก่อน +3

    最後すご

  • @KawaiiNegi-
    @KawaiiNegi- 29 วันที่ผ่านมา +2

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

  • @pablo1gustavo
    @pablo1gustavo 2 หลายเดือนก่อน +22

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

    • @evimalab
      @evimalab  2 หลายเดือนก่อน +5

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

  • @fuyuno3703
    @fuyuno3703 หลายเดือนก่อน +1

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

  • @user-tn9bg2or6m
    @user-tn9bg2or6m หลายเดือนก่อน +3

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

  • @user-yn1mu2eb8t
    @user-yn1mu2eb8t 29 วันที่ผ่านมา

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

  • @khoitan4758
    @khoitan4758 2 หลายเดือนก่อน +4

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

  • @kumamonslayer
    @kumamonslayer หลายเดือนก่อน

    オチ好き

  • @user-xt1xd3vs5p
    @user-xt1xd3vs5p 2 หลายเดือนก่อน +12

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

  • @hbenpitsu73
    @hbenpitsu73 2 หลายเดือนก่อน +14

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

    • @evimalab
      @evimalab  2 หลายเดือนก่อน +9

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

  • @NasuWatamate
    @NasuWatamate หลายเดือนก่อน +1

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

  • @user-ew9ep3dg9i
    @user-ew9ep3dg9i 2 หลายเดือนก่อน +9

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

  • @user-fc5lr1cs9o
    @user-fc5lr1cs9o 2 หลายเดือนก่อน +5

    黒魔術、、、

  • @JD-is8yg
    @JD-is8yg 2 หลายเดือนก่อน +1

    品評会会場はここですか

  • @dasigaratarou
    @dasigaratarou 2 หลายเดือนก่อน +7

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

  • @user-cl9gt1gl8l
    @user-cl9gt1gl8l หลายเดือนก่อน +2

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

  • @tamakko_pippi
    @tamakko_pippi หลายเดือนก่อน

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

  • @NyanBuzz
    @NyanBuzz 12 วันที่ผ่านมา

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

  • @Chouky-wo2gt
    @Chouky-wo2gt 2 หลายเดือนก่อน +2

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

  • @pineapple_poainapow
    @pineapple_poainapow หลายเดือนก่อน

    個人的には17が好き

  • @kimuti_tsukai
    @kimuti_tsukai 2 หลายเดือนก่อน +1

    Rust には loop 文があるんだぜ

  • @user-ue6fk1py3n
    @user-ue6fk1py3n หลายเดือนก่อน +2

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

    • @evimalab
      @evimalab  หลายเดือนก่อน +1

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

  • @Justy-heart
    @Justy-heart หลายเดือนก่อน

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

  • @user-ji3tj4vr2k
    @user-ji3tj4vr2k 2 หลายเดือนก่อน +10

    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 2 หลายเดือนก่อน +1

      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.

    • @user-ji3tj4vr2k
      @user-ji3tj4vr2k 2 หลายเดือนก่อน +1

      @@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

  • @user-gc7is8jw3x
    @user-gc7is8jw3x 2 หลายเดือนก่อน

    おもろい

  • @d1Prczr6b29eM82Y
    @d1Prczr6b29eM82Y 2 หลายเดือนก่อน +5

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

    • @evimalab
      @evimalab  2 หลายเดือนก่อน +2

      頑張ります。

  • @hurgel1400
    @hurgel1400 หลายเดือนก่อน

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

  • @YOMA8338
    @YOMA8338 หลายเดือนก่อน +1

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

  • @warokihami
    @warokihami หลายเดือนก่อน +1

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

  • @user-pn8pu8xg7j
    @user-pn8pu8xg7j หลายเดือนก่อน +1

    HQ9+「H」
    BrainCrash「」

    • @user-pn8pu8xg7j
      @user-pn8pu8xg7j หลายเดือนก่อน

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

  • @Ryot4ro
    @Ryot4ro 2 หลายเดือนก่อน

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

    • @user-tn9bg2or6m
      @user-tn9bg2or6m หลายเดือนก่อน +3

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

  • @user-vc1wf6cx5v
    @user-vc1wf6cx5v 2 หลายเดือนก่อน +39

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

    • @fuha5681
      @fuha5681 2 หลายเดือนก่อน +50

      忘れろ

    • @user-gk5il9mc4v
      @user-gk5il9mc4v 2 หลายเดือนก่อน +13

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

    • @woodburned8972
      @woodburned8972 2 หลายเดือนก่อน +12

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

    • @luke0804
      @luke0804 2 หลายเดือนก่อน +16

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

    • @haru-leit
      @haru-leit 2 หลายเดือนก่อน +2

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

  • @user-ns6yi5ez4r
    @user-ns6yi5ez4r 2 หลายเดือนก่อน +10

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

    • @evimalab
      @evimalab  2 หลายเดือนก่อน +23

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

    • @user-gc7gf9ql5p
      @user-gc7gf9ql5p 2 หลายเดือนก่อน +1

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

    • @user-hh1px1vy1u
      @user-hh1px1vy1u หลายเดือนก่อน

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

  • @RWING1971
    @RWING1971 หลายเดือนก่อน

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

  • @HarusameTech
    @HarusameTech หลายเดือนก่อน +6

    個人的にこれが割とシンプルで好きだったんだけどレギュ的にどうなんだろ
    ```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  หลายเดือนก่อน +2

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

  • @Scr_MIYUKINNGU
    @Scr_MIYUKINNGU 2 หลายเดือนก่อน

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

  • @rejafdofs
    @rejafdofs 22 วันที่ผ่านมา

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

  • @user-sn5sm7id9q
    @user-sn5sm7id9q หลายเดือนก่อน

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