源自混沌,归于混沌... 我的意志就是我的力量... 冲破千年封印的束缚... 我的眼中既没有光明,也没有黑暗...只剩下一片迷茫...
  • CET6之残念...

    2008-12-21 21:17:51

    作文不会写了...
    单词忘光了...瞎掰都掰不出东西了...

    难过

    听力不行了...
    一段文章听完,他讲了啥我完全不知道...

    疑问

    阅读能力依然健在...
    不过我怀疑...是不是因为阅读最简单...
    毕竟...阅读的时间紧,故意放低难度???

    吃饭

    完型...
    哈哈,连猜20道,文章都没仔细看...

    谄笑

    翻译...
    最近新番动画片看多了...
    日文发音想到了,英文发音完全想不起来...
    敲打

  • 在VS2008里遇到灵异事件了... *

    2008-11-19 23:05:23

    灵异事件1:计算不可再现...
    这几天在把我那个压缩的东东改写成C++的代码
    过程并不复杂,顶多也就调试起来麻烦了点
    后来为了要让VB能够调用,在网上疯狂搜索了ATL的资料
    瞧完代码后测试的时候怪事情就来了~~~
    我的代码里有个算术编码,出于精度和效果的考虑
    中间过程是用浮点计算的,最后结果在放整数里
    之前已经测试过,在VB里和VC++里都能正常得出结果
    但是把代码放ATL工程里调试就出错啦
    我实在没辙只好记录所有计算结果进行比对
    然后就发现怪事的:
    首先我声明编码和解码时各参数无论类型,数值完全一致
    可能有人会说浮点型是看不出来的
    可是我那个浮点数值是用整数做除法得到的,而整数的值是一样的
    但是问题就出在这些参数得到的最终结果不一样
    我以为是哪里写错了,就断点监视了一下,然后最奇怪的事情发生了:
    断点的时候结果正确了,但是一取消监视就又错了
    最后我只好用64位的整数运算来代替,果然算整数的时候正常了...
    仔细看了一下监视的时候double的精度,有17位10进制数
    猜想难道VB故意舍弃最后2位,用来进行舍入操作???
    似乎以前关闭VB的浮点数检查之后计算结果也会变化的说

    灵异事件2:消失的指针...
    这个就更玄了...
    VC++是可以重载运算符的,所以重载以后可以让代码很好看
    这个事件就是发生在我重载=(赋值)运算的时候
    我通过引用方式往函数里传递进了一个自定义的结构体
    在里面我没有进行任何操作,只是进行了一次地址的判断,其余操作都在if的语句框里
    然后就发现参数的地址被改变了,这时刚判断完,断点在if的语句框里第一行代码上
    为纺万一,我加了const关键字同时单步跟踪,问题依旧
    后来乱改了下,把if里面的语句都删了(里面的第一行代码还留着),居然正常了
    想来想去原因不明,因为理论上被删的代码都没运行到才对...
    诶,还是VB好啊,没这么多BT的问题...
  • 柯南62卷惊现伽利略

    2008-10-25 17:12:56

    今天买了柯南62卷

    翻开最后一页突然发现以下图片

    73似乎是照着电视剧的造型画的,哈哈

  • 学校出现的向日花丛...

    2008-10-14 22:59:21

    RT...

    我看到后想起了某动画片的场景...魔女的山丘...

  • 纯手工打造魔剑 *

    2008-09-06 13:24:16



    魔剑.JPG

    魔剑图纸.rar
    (2008-09-06 13:23:38, Size: 232 kB, Downloads: 0)

  • CRT的研究... *

    2008-09-05 11:30:43

    CRT也就是"中国剩余定理"
    通常都是用"韩信点兵"的故事来说明,简单概括来说就是解一元一次同余方程组
    我这里要说的是它的逆向应用,我也是在最近几天才知道可以这样做的哈

    假设 m=m1*m2*...*mk 且 mi,mj互素(i<>j,1<=i,j<=k)
    那么任意一个 0 -> m-1 之间的数字都可以用一组k个同余式来表示
    假设有x,y两个数(0<=x,y<m)
    则 x=(x1,x2,...,xk) (xi=x mod mi)
       y=(y1,y2,...,yk) (yi=y mod mi)
    即x,y均可以表示成向量形式(m相当于一个空间了)

    然后就是运算了(假设运算都在 0 -> m-1 的范围内)
    x+y 等价于 ((x1+y1)mod m1,(x1+y1)mod m2,...,(xk+yk)mod mk)
    x-y 等价于 ((x1-y1)mod m1,(x1-y1)mod m2,...,(xk-yk)mod mk)
    x*y 等价于 ((x1*y1)mod m1,(x1*y1)mod m2,...,(xk*yk)mod mk)

    这个性质的应用就在于
    假设x,y的运算超出了字长限制
    那么我们就可以把x,y分割成小部分分量
    然后对分量进行运算
    结束后再用分量还原出结果
    数学真是神奇啊(感叹下)
  • 今日查分,CET毫无悬念得挂了... *

    2008-08-27 15:26:12

    RT...
  • 大家一起来做烧鸡吧 *

    2008-08-09 23:37:01

    成品见图,图纸见附件

    DSC01254.JPG

    烧鸡.rar
    (2008-08-09 23:35:50, Size: 965 kB, Downloads: 0)

  • BT方法对付BT刻录机... *

    2008-08-07 00:01:36

    今天遇到一个十分BT的刻录机...SONY DRU-820A
    打开NERO顺利地到了刻录的界面居然说刻录机无响应,刻录失败...汗
    然后读盘什么的却一切正常...晕
    郁闷之下尝试用ISO镜像直接刻录
    反正对NERO不抱希望了,就试试别的软件
    首先用了UltraISO,还是失败,仔细一看UltraISO居然是调用NERO的模块的,怪不得...难过
    感觉不爽之余装了酒精(主要是这东西曾经CRACK了STARTFORCE,对他有好感微笑)
    一试居然开始刻录了
    保守起见我设定的速度是5X,结果实际速度居然只有0.3X-0.4X
    结果4GB的东西硬是花了2.5H才完成...困
    诶,果然很BT...叹气
  • 灵感突发,心血来潮...

    2008-08-06 23:46:31




    哇哈哈哈哈哈...
  • 前几日外出所见...

    2008-08-04 22:24:40



    猕猴桃原来是像葡萄那样长的...

    可惜橘子没熟...

    我相信这个是毒蘑菇...



    我认为这个青蛙有剧毒...

    这虫子恶心吧...

    我对发动机很感兴趣...

    山里鸡真多...真想抓来煮了...


    这个学名貌似叫蟾蜍...


    毛毛虫...


    石榴...

    两只蝴蝶...

    奇怪的环型...

    毒蘑菇群...


  • 关于那个好男儿拍的网球王子我实在没想法了...

    2008-07-31 20:45:31

    前几天就开播了,忙着玩电脑忘看了
    今天好歹看了一集,实在是受不了
    光是不忠实原著也就算了
    没想到出场的人一个比一个WS
    而且配音的也不知道在干什么,很多方言口音
    演技就更别提了

    诶,果然把动漫啦,游戏啦拍成电视剧是很不成熟的想法
    演员总是和FANS们理想中的有着很大的差距
    再加上边剧导演等缺乏对原著足够的热爱
    所以每次有同类作品出现,引来的只是观众的嘘声
    近期也有作品据说已经开拍,我拭目以待...
  • Slayers Revolution太搞笑的...

    2008-07-04 12:17:50

    大规模杀伤性武器————莉娜·因巴斯
    爱国者:


    鱼雷:


    高里居然打铁:


    最搞笑的部分:













  • 雨后惊现彩虹,可惜忘了开夜拍...

    2008-07-02 21:29:18

  • 忏悔——CET6... *

    2008-06-22 14:47:33

    溜校赛,混省赛(ACM)

    弃化学,从软件(转系)

    过四级,冲六级(CET)

    本来,一切都该如以上剧本完美地发展...

    本来,我可以为这个学年划上完美的句号...

    谄笑

    可是我错了...

    一切都在今天被颠覆...

    CET6成为了这个学年最初也是最后的败笔...

    困

    回想当初,考完CET4的那天,我曾经说过:"从此不考CET"...

    可是我今天还是走进了考场...

    从那一刻起,历史就已经注定...

    难过

    我被第一卷迷惑了,它是如此的简单,以致于我觉得我是在做初中生的题目...

    知道第二卷,我才发现不妙...

    情势急转直下...

    听力楞是什么都没听出来,我差点没暴走...

    更另我吐血的是引以为傲的阅读竟然也是如此...

    这一刻,我崩溃了...

    晕

    我放弃了...

    一种油尽灯枯的感觉,一种无力感油然而生...

    我知道我错了...

    流泪

  • 魔剑语录(不断更新中) *

    2008-06-15 19:55:05

    劝世良言:
        一吸毒成千古恨,再回首已骷髅身
        忍一时风平浪静,吸一口万劫不复
            ——《魔剑语录·戒毒篇》
    人生格言:
      人生是由不幸组成的
      人生是由空虚组成的
        我们把一切科学原理无法解释的现象归结为人品问题
        原来一个噩梦的结束是另一个噩梦的开始...
            ——《魔剑语录·人生篇》
    考试金言:
      量力而行,革命本钱是身体;尽志无悔,十年高复又何妨
      考前不复习,考时不检查,考后不订正:乃考坛最后取胜之道
      人生考试皆失意,英雄难过考试关
            ——《魔剑语录·应试篇》
    古今恒言:
      剑本凡铁,因执拿而通灵,因心而动,因血而活,因非念而死…
        金铁之剑,因锋锐而易折,精气之剑,源天地而不毁
        金钱乃万恶之源
            ——《魔剑语录·摘录篇》
    至理名言:
      冲动是魔鬼
        做人要厚道
        水至清则无鱼,人至贱则无敌
        很X很XX
            ——《魔剑语录·网络篇》
    前车鉴言:
        大学是一个貌似天堂的炼狱…
            ——《魔剑语录·大学篇》

  • ReDim语句加强版的再强化版(邪恶度5星) *

    2008-06-14 21:47:09

    所谓的加强版是因为以前已经写过可以改LBound的ReDim了
    所谓的再强化版是因为这次的这个可以修改任何类型的动态数组,是不是很邪恶
    唯一的遗憾是必须是动态数组,还有只适用于1维,多维的代码太麻烦了
    Option Explicit
    Private Declare Sub CopyMemory Lib "KERNEL32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
    Private Declare Sub ZeroMemory Lib "KERNEL32" Alias "RtlZeroMemory" (dest As Any, ByVal numBytes As Long)
    Private Declare Function VarPtrArray Lib "msvbvm60.dll" Alias "VarPtr" (Var() As Any) As Long

    Private Type SafeArray
      cDims As Integer         '这个数组有几维?
      fFeature As Integer      '这个数组有什么特性?
      cbElements As Long       '数组的每个元素有多大?
      cLocks As Long           '这个数组被锁定过几次?
      pvData As Long           '这个数组里的数据放在什么地方?
    End Type

    Private Type Var
      VarType  As Integer
      UnknownA As Integer
      UnknownB As Long
      Ptr      As Long
      UnknownC As Long
    End Type

    Function ReDim_Preserve(Arr As Variant, NewLBound As Long, NewUBound As Long) As Boolean
    Dim Bits()    As Byte '缓冲
    Dim CopySize  As Long '复制长度
    Dim CopyPoint As Long '复制点
    '数组结构
    Dim ArrStruct  As SafeArray
    Dim BitsStruct As SafeArray
    '数组指针
    Dim VarStruct  As Var
    Dim ArrPoint   As Long
    Dim BitsPoint  As Long
    '复制范围
    Dim CopyLBound As Long
    Dim CopyUBound As Long
    '交换指针
    Dim SwapPoint  As Long

    On Error GoTo Err
    If IsArray(Arr) And NewUBound >= NewLBound Then '判断是否有意义
      Call CopyMemory(VarStruct, Arr, 16)
      Call CopyMemory(ArrPoint, ByVal VarStruct.Ptr, 4) '得到头指针
      Call CopyMemory(ArrStruct, ByVal ArrPoint, LenB(ArrStruct)) '得到数组结构
      If ArrStruct.cDims = 0 Then '判断是否为空
        ReDim Arr(NewLBound To NewUBound)
      Else
        '得到复制范围
        If NewLBound > LBound(Arr) Then CopyLBound = NewLBound Else CopyLBound = LBound(Arr)
        If NewUBound < UBound(Arr) Then CopyUBound = NewUBound Else CopyUBound = UBound(Arr)
        CopySize = (CopyUBound - CopyLBound + 1) * ArrStruct.cbElements
        ReDim Bits(1 To CopySize)  '申请内存
        CopyPoint = ArrStruct.pvData + (CopyLBound - LBound(Arr)) * ArrStruct.cbElements
        Call CopyMemory(Bits(1), ByVal CopyPoint, CopySize) '复制
        Call ZeroMemory(ByVal CopyPoint, CopySize) '保险起见,清除原先的信息
        ReDim Arr(NewLBound To NewUBound) '改变大小
        '得到新数组信息
        Call CopyMemory(VarStruct, Arr, 16)
        Call CopyMemory(ArrPoint, ByVal VarStruct.Ptr, 4) '得到头指针
        Call CopyMemory(ArrStruct, ByVal ArrPoint, LenB(ArrStruct)) '得到数组结构
        '得到缓冲信息
        Call CopyMemory(BitsPoint, ByVal VarPtrArray(Bits), 4)
        Call CopyMemory(BitsStruct, ByVal BitsPoint, LenB(BitsStruct)) '得到数组结构
        '交换指针
        SwapPoint = ArrStruct.pvData
        ArrStruct.pvData = BitsStruct.pvData
        BitsStruct.pvData = SwapPoint
        Call CopyMemory(ByVal ArrPoint, ArrStruct, LenB(ArrStruct)) '得到数组结构
        Call CopyMemory(ByVal BitsPoint, BitsStruct, LenB(BitsStruct)) '得到数组结构
        ReDim_Preserve = True '成功
      End If
    End If
    Err:
    End Function

    '测试代码
    Private Sub Command1_Click()
    ReDim a(5) As String
    Dim i As Long
    For i = 1 To 5
    a(i) = i
    Next
    Call ReDim_Preserve(a, 2, 4)
    End Sub
  • 软件2+2面试题

    2008-06-02 09:56:19

    题目类型依次是
    排序
    排序
    打表
    排序
    排序

  • U盘低格记... *

    2008-05-25 15:52:18

    症状:

    可用空间0

    剩余容量0

    磁盘类型RAW

    双基提示格式化,不过无法完成...

    使用N个工具处理无果...历时N小时...

    软件的广告吹得很厉害...

    毕竟是奖品,不好意思就这么报废了...

    最后终于找到芯片的量产软件,直接低格,10MIN后修复完成...

    前面的N小时白费了...

  • 传说中的数论变换... *

    2008-05-25 15:43:16

    由本原单位根引出的2大变换:傅立叶变换 & 数论变换

    其中傅立叶变换的本原单位根取ω=e^(2πi/n),涉及复数运算以及浮点运算

    而数论变换的本原单位根取采用同余运算,只涉及整数运算,不存在精度问题

    但是2者的快速算法完全相同...

    研究了N天的数论,终于是搞懂了其中的奥妙...

    历尽千辛万苦终于把代码写出来了...

    不过毕竟是VB专用的,适用范围有所限制...

    由于没有进行细节的优化,速度还不是很理想,有兴趣的同志拿去研究吧...
    Option Explicit
    Option Base 0

    Private Const MAXM       As Long = 19         ' 最大变换长度 n=2^19
    Private Const ENTRYSIZE  As Long = 10         ' 10进位
    Private Const P          As Double = 29884417 ' 素数57*2^19+1
    Private Const OMEGA      As Long = 12493404   ' 原根5^57 Mod P

    Private BitsArr() As Long
    Private W() As Double
    Private n As Long, m As Long

    Private Sub GetBitsArr()
    Dim i As Long, j As Long
    ReDim BitsArr(n - 1)
    For i = 1 To n - 1
      j = m - 1
      Do While BitsArr(i - 1) And LongBits(j)
        j = j - 1
      Loop
      BitsArr(i) = BitsArr(i - 1) And LongBits(j) - 1 Or LongBits(j)
    Next
    End Sub

    Private Sub ReverseBits(Arr() As Long)
    Dim i As Long, t As Long
    For i = 1 To n - 2
      If BitsArr(i) > i Then
        t = Arr(i)
        Arr(i) = Arr(BitsArr(i))
        Arr(BitsArr(i)) = t
      End If
    Next
    End Sub

    Private Sub GetW()
    Dim i As Long
    ReDim W(n)
    W(0) = 1
    W(n) = 1
    W(1) = OMEGA
    For i = 1 To MAXM - m
      W(1) = W(1) * W(1)
      W(1) = W(1) - Int(W(1) / P) * P
      'W(1) = W(1) * W(1) Mod P
    Next
    For i = 2 To n - 1
      W(i) = W(1) * W(i - 1)
      W(i) = W(i) - Int(W(i) / P) * P
      'W(i) = W(1) * W(i - 1) Mod P
    Next
    End Sub

    Private Sub NTT(Arr() As Long)
    Dim i As Long, j As Long, t As Double
    Dim Level As Long, ArrStep As Long, ArrPoint As Long
    For Level = 1 To m
      For ArrStep = 0 To n - 1 Step LongBits(m - Level + 1)
        For ArrPoint = 0 To LongBits(m - Level) - 1
          i = ArrStep + ArrPoint
          j = i + LongBits(m - Level)
          t = CDbl(Arr(i)) + CDbl(Arr(j))
          'Arr(i) = (Arr(i) + Arr(j)) Mod P
          Arr(i) = t - Int(t / P) * P
          t = (CDbl(Arr(i)) - 2 * CDbl(Arr(j))) * W(LongBits(Level - 1) * ArrPoint And n - 1)
          'Arr(j) = (Arr(i) - 2 * Arr(j)) * W(LongBits(Level - 1) * ArrPoint And n - 1) Mod P
          Arr(j) = t - Int(t / P) * P
        Next
      Next
    Next
    Call ReverseBits(Arr)
    End Sub

    Private Sub InverseNTT(Arr() As Long)
    Dim i As Long, j As Long, t As Double
    Dim Level As Long, ArrStep As Long, ArrPoint As Long
    For Level = 1 To m
      For ArrStep = 0 To n - 1 Step LongBits(m - Level + 1)
        For ArrPoint = 0 To LongBits(m - Level) - 1
          i = ArrStep + ArrPoint
          j = i + LongBits(m - Level)
          t = CDbl(Arr(i)) + CDbl(Arr(j))
          'Arr(i) = (Arr(i) + Arr(j)) Mod P
          Arr(i) = t - Int(t / P) * P
          t = (CDbl(Arr(i)) - 2 * CDbl(Arr(j))) * W(n - (LongBits(Level - 1) * ArrPoint And n - 1))
          'Arr(j) = (Arr(i) - 2 * Arr(j)) * W(n - (LongBits(Level - 1) * ArrPoint And n - 1)) Mod P
          Arr(j) = t - Int(t / P) * P
        Next
      Next
    Next
    Call ReverseBits(Arr)
    Dim InverseN As Long
    'InverseN = ModInverse(n)
    Call ExtendedGCD(n, P, InverseN)

    For i = 0 To n - 1
      t = CDbl(InverseN) * Arr(i)
      'Arr(i) = Arr(i) * InverseN Mod P
      Arr(i) = t - Int(t / P) * P
    Next
    End Sub

    Public Sub Convolution(Arr1() As Long, Arr2() As Long) '卷积
    Dim i As Long, t As Double
    n = UBound(Arr1) + 1
    m = Log(n) / Log(2)
    Call GetBitsArr
    Call GetW
    Call NTT(Arr1)
    Call NTT(Arr2)

    For i = 0 To n - 1
      t = CDbl(Arr1(i)) * CDbl(Arr2(i))
      Arr1(i) = t - Int(t / P) * P
    Next
    Call InverseNTT(Arr1)
    End Sub

1521/812345678>
Open Toolbar