Project1

标题: Ruby的某某 [打印本页]

作者: 余烬之中    时间: 2013-12-1 16:23
标题: Ruby的某某
本帖最后由 余烬之中 于 2013-12-1 16:32 编辑

   
       首先,如果你不懂ruby而且没兴趣,请绕道,如果不懂单有兴趣,可以当消遣物,ruby新手可以看着玩玩,高手笑笑就好,闲得蛋疼的可以和我一样试试

       有关这件事呢 是这样的:@dukesward 发了一个帖子《"Almost everything in Ruby is an object"》,来玩一个游戏,找出在ruby中偶数Object Id所对应的Object *,然后接龙……

*【在ruby中所有的东西都是一个对象(Object),包括类、模块、方法甚至关键字,每个对象都有对应的ID(object_id),其中奇数ID对应的都是正整数,偶数ID中,有的对应了一个Object,有的没有对应的Object】

        然后我一不小心透露了算法,游戏自然玩不下去,但是……在强迫症的驱使下,我决定列举出0到10000000内所有偶数所对应的Object(如果有的话)

        但是结果很出乎我的意料……10000000说起来就是个数字,形象化后就很惊人……

        我把其中最长的 一个 Object回帖,然后Discuz!就扛不住了,编辑帖子时能看见,出来就是空白的……
所以我把它放在了这里

        另外一个成就是……搞出一个Bug:

[BUG] Segmentation fault
ruby 1.9.3p448 (2013-06-27) [i386-mingw32]

-- Control frame information -----------------------------------------------
c:0009 p:---- s:0023 b:0023 l:000022 d:000022 CFUNC  :inspect
c:0008 p:0059 s:0020 b:0018 l:00254c d:000017 BLOCK  E:/d.rb:4
c:0007 p:---- s:0015 b:0015 l:000014 d:000014 FINISH
c:0006 p:---- s:0013 b:0013 l:000008 d:000012 IFUNC
c:0005 p:---- s:0011 b:0011 l:000010 d:000010 CFUNC  :each
c:0004 p:---- s:0009 b:0009 l:000008 d:000008 CFUNC  :map
c:0003 p:0012 s:0006 b:0006 l:00254c d:00134c EVAL   E:/d.rb:2
c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH
c:0001 p:0000 s:0002 b:0002 l:00254c d:00254c TOP   

-- Ruby level backtrace information ----------------------------------------
E:/d.rb:2:in `<main>'
E:/d.rb:2:in `map'
E:/d.rb:2:in `each'
E:/d.rb:4:in `block in <main>'
E:/d.rb:4:in `inspect'

-- C level backtrace information -------------------------------------------
C:\WINDOWS\system32\ntdll.dll(KiFastSystemCallRet+0x0) [0x7c92e514]
C:\WINDOWS\system32\kernel32.dll(WaitForSingleObject+0x12) [0x7c802542]
D:\Ruby193\bin\msvcrt-ruby191.dll(rb_vm_bugreport+0xf9) [0x62e5bec5]
D:\Ruby193\bin\msvcrt-ruby191.dll(rb_name_err_mesg_new+0x17a) [0x62d3a87a]
D:\Ruby193\bin\msvcrt-ruby191.dll(rb_bug+0x2f) [0x62d3b557]
D:\Ruby193\bin\msvcrt-ruby191.dll(rb_check_safe_str+0x194) [0x62dee898]
[0x004011e6]
C:\WINDOWS\system32\kernel32.dll(UnhandledExceptionFilter+0x1c7) [0x7c864209]

-- Other runtime information -----------------------------------------------

* Loaded script: E:/d.rb

* Loaded features:

    0 enumerator.so
    1 D:/Ruby193/lib/ruby/1.9.1/i386-mingw32/enc/encdb.so
    2 D:/Ruby193/lib/ruby/1.9.1/i386-mingw32/enc/gbk.so
    3 D:/Ruby193/lib/ruby/1.9.1/i386-mingw32/enc/trans/transdb.so
    4 D:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/defaults.rb
    5 D:/Ruby193/lib/ruby/1.9.1/i386-mingw32/rbconfig.rb
    6 D:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/deprecate.rb
    7 D:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/exceptions.rb
    8 D:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/defaults/operating_system.rb
    9 D:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb
   10 D:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems.rb

[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html


This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

我在考虑要不要联系【the application's support team】……算了

然后就是重头戏……Word中长达527页的全部枚举内容!
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
















































我当然不可能直接放在这里,你可以走这里看,但是走这里也可以(这一个提供了算法,但是不要直接拿去用,直接算0-10000000有可能死机……拆分成0-2000000,2000000-4000000......)
在第二个地址,我建议下载下来 ,因为MS Word Web速度肯定不如本地看
作者: 576437081    时间: 2013-12-1 16:27
脚本盲路过······
貌似很强大的样子···
作者: 咕噜    时间: 2013-12-1 16:28
Discuz可以扛得住灌水但挡不住类似程序猿的奇异人类……
作者: 无脑之人    时间: 2013-12-1 17:07
真是丧心病狂- - 不过千万次的迭代肯定会坑……
作者: 晴兰    时间: 2013-12-1 17:15
提示: 作者被禁止或删除 内容自动屏蔽
作者: 美丽晨露    时间: 2013-12-1 17:56
表示看到代码就头晕
作者: dukesward    时间: 2013-12-2 13:19
其实比较ruby和阉割过的rgss你就会发现差别,rgss中内部只定义了37万个左右的object,不过这个segmentation fault我也不清楚是什么
作者: myownroc    时间: 2013-12-2 23:40
所以说论坛大姨妈都是因为你吗?
作者: 李光兆    时间: 2013-12-3 12:40
程序员大大给跪了=V=




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1