你见过哪些好玩又花里胡哨的代码呢 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
xoxo419
V2EX    程序员

你见过哪些好玩又花里胡哨的代码呢

  •  
  •   xoxo419 2024 年 11 月 9 日 3043 次点击
    这是一个创建于 443 天前的主题,其中的信息可能已经有所发展或是发生改变。
    18 条回复    2024-11-11 15:33:40 +08:00
    Contextualist
        1
    Contextualist  
       2024 年 11 月 9 日
    参见 IOCCC (国际 C 语言混乱代码大赛)
    PTLin
        2
    PTLin  
       2024 年 11 月 9 日
    好玩花里胡哨 等于:复杂的宏混淆,绕好几圈的代码逻辑,不格式化没法看的代码,一堆没人解释就看不懂的技巧。
    ZeawinL
        3
    ZeawinL  
       2024 年 11 月 9 日 via iPhone   3
    某个人的名字不换行
    needpp
        4
    needpp  
       2024 年 11 月 9 日
    fork 炸蛋?
    NoDataNoBB
        5
    NoDataNoBB  
       2024 年 11 月 9 日
    Brainfuck
    hhhh115
        6
    hhhh115  
       2024 年 11 月 9 日   2
    arr = [6,1,3,9,0]
    sorted = []
    for(let i = 0; i < arr.length; i++) {
    setTimeout(() => {
    sorted.push(arr[i])
    }, arr[i])
    }
    console.log(sorted)
    一种排序算法
    当初看到的时候愣了两下,哈哈。
    忘记在哪看到的
    yazinnnn0
        7
    yazinnnn0  
       2024 年 11 月 9 日   1


    Y 组合子, 虽然不是代码, 但是可以十分简单的解释停机问题
    ymz
        8
    ymz  
       2024 年 11 月 9 日
    @hhhh115 艹数字越大,延时越久。
    haneki
        9
    haneki  
       2024 年 11 月 9 日 via Android   1
    #6 沃勒个睡觉排序啊。
    pythonee
        10
    pythonee  
       2024 年 11 月 9 日
    @yazinnnn0 这个东西的推导让我脑子原地绕了好几圈
    v2AKS
        11
    v2AKS  
       2024 年 11 月 9 日
    @hhhh115 #6 6
    NessajCN
        12
    NessajCN  
       2024 年 11 月 9 日
    i = int(input("Input an integar: "))
    print("eovdedn"[i%2::2])
    lisxour
        13
    lisxour  
       2024 年 11 月 9 日
    猴子排序算法,有点东西,但不花里胡哨
    loveour
        14
    loveour  
       2024 年 11 月 9 日
    @hhhh115 666.一开始还懵了一下
    olderfe
        15
    olderfe  
       2024 年 11 月 9 日
    k;double sin()
    ,cos();main(){float A=
    0,B=0,i,j,z[1760];char b[
    1760];printf("\x1b[2J");for(;;
    ){memset(b,32,1760);memset(z,0,7040)
    ;for(j=0;6.28>j;j+=0.07)for(i=0;6.28
    >i;i+=0.02){float c=sin(i),d=cos(j),e=
    sin(A),f=sin(j),g=cos(A),h=d+2,D=1/(c*
    h*e+f*g+5),l=cos (i),m=cos(B),n=s\
    in(B),t=c*h*g-f* e;int x=40+30*D*
    (l*h*m-t*n),y= 12+15*D*(l*h*n
    +t*m),o=x+80*y, N=8*((f*e-c*d*g
    )*m-c*d*e-f*g-l *d*n);if(22>y&&
    y>0&&x>0&&80>x&&D>z[o]){z[o]=D;;;b[o]=
    ".,-~:;=!*#$@"[N>0?N:0];}}/*#****!!-*/
    printf("\x1b[H");for(k=0;1761>k;k++)
    putchar(k%80?b[k]:10);A+=0.04;B+=
    0.02;}}/*****####*******!!=;:~
    ~::==!!!**********!!!==::-
    .,~~;;;========;;;:~-.
    ..,--------,*/


    甜甜圈申请出战
    liyafe1997
        16
    liyafe1997  
       2024 年 11 月 10 日
    @ZeawinL 还有照片隐藏鼠标指针
    grzhan
        17
    grzhan  
       2024 年 11 月 10 日
    Golang 标准库 sys.TrailingZeros64
    通过 deBruijn 序列快速计算一个 64 位二进制末尾有多少个 0:

    var deBruijn64tab = [64]byte{
    0, 1, 56, 2, 57, 49, 28, 3, 61, 58, 42, 50, 38, 29, 17, 4,
    62, 47, 59, 36, 45, 43, 51, 22, 53, 39, 33, 30, 24, 18, 12, 5,
    63, 55, 48, 27, 60, 41, 37, 16, 46, 35, 44, 21, 52, 32, 23, 11,
    54, 26, 40, 15, 34, 20, 31, 10, 25, 14, 19, 9, 13, 8, 7, 6,
    }

    const deBruijn64 = 0x03f79d71b4ca8b09

    // TrailingZeros64 returns the number of trailing zero bits in x; the result is 64 for x == 0.
    func TrailingZeros64(x uint64) int {
    if x == 0 {
    return 64
    }
    // If popcount is fast, replace code below with return popcount(^x & (x - 1)).
    //
    // x & -x leaves only the right-most bit set in the word. Let k be the
    // index of that bit. Since only a single bit is set, the value is two
    // to the power of k. Multiplying by a power of two is equivalent to
    // left shifting, in this case by k bits. The de Bruijn (64 bit) constant
    // is such that all six bit, consecutive substrings are distinct.
    // Therefore, if we have a left shifted version of this constant we can
    // find by how many bits it was shifted by looking at which six bit
    // substring ended up at the top of the word.
    // (Knuth, volume 4, section 7.3.1)
    return int(deBruijn64tab[(x&-x)*deBruijn64>>(64-6)])
    }


    -------

    1. (x & -x) 会把 x 除了最低位以外的 1 都清 0
    2. deBrujin64 是一个德布鲁因数,它有个重要性质:它相当于一个循环的德布鲁因序列,每个长度为 6 的二进制子串在里面恰好出现一次,也就是说这个德布鲁因数包含所有的 6 位二进制数,且通过不同次数的位移可以恰好得到。
    3. x 若有 k 个 0 , 那么 (x & -x) * deBrujin64 就相当于 deBrujin64 << k ,注意左移是会回绕的,因此 (deBrujin64 << k) >> 58 可以恰好得到 k 在 deBrujin64 中对应的六位唯一二进制子序列
    4. deBrujin64tab 就是 k 与对应六位二进制子序列(数)的映射,因此可以快速找到对应的 k ,也就是末尾多少个 0

    据说该方法来自 Knuth 的 The Art of Computer Programming 7.3.1 ,回头找一下再学习下。

    sys.TrailingZeros64 的性能在很多 Go 运行时场景都至关重要,Golang 有很多 free-list allocator ,比如 mspan 就会用 allocCache bitmap 位图来快速定位可以分配的 free object ,所以计算这个 bitmap 末尾有多少个 0 ,就能快速找到可以被重复利用分配的 free object
    MoYi123
        18
    MoYi123  
       2024 年 11 月 11 日
    quine 程序, 一段可以打印自己的代码.

    https://en.wikipedia.org/wiki/Quine_(computing)
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1346 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 17:09 PVG 01:09 LAX 09:09 JFK 12:09
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86