我的人生路  
          日歷
          <2005年7月>
          262728293012
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456
          統計
          • 隨筆 - 74
          • 文章 - 57
          • 評論 - 7
          • 引用 - 0

          導航

          常用鏈接

          留言簿(5)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊

          顏色

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

           

          2005年7月29日

          在java算法(Scott robert ladd)中看到快速傅立葉變換,講的很詳細,摘錄下來跟大家分享!
          以下正文:
          FFT或許是已知的最有效的算法,他應用范圍廣。從信號的處理到數據壓縮到地震分析和圖形放大,FFT通過領域間的信息轉換
          提供了一個強有力的工具,本節講討論FFT如何改進多項式乘法的性能:
           到目前為止,我用系數形式表示多項式,但有些應用程序最適合用point-value形式表示多項式,任何多項式都可被n個點值
           對來表示,這里,value是多項式在給定點point的值,許多數學應用要使用FFT實現點值和系數之間的快速變換。
              兩個多項式A和B快速相乘的過程如下:
           1,用同一組值把A和B從十形式轉換為點值形式pA和pB。
           2。pA和pB對應的點值相乘,得到pC。
           3。對pC進行插值得到系數多項式C,他等于A乘上B。
          表面上看,上述算法比在mul中使用之際相乘并不高效--卻更復雜,選擇合適的計算值可以使點-值乘法非常快。

          public class PolynomialFFTextends polynomial
          {
           //utility field
           final protected static Complex p|2|=new Complex(0.0D,6.283185307179586D);

           //utility methods
           protected static int log2(int n)
           {
            int x=1;
            int c=0;
            while(true)
            {
             if (x>=n) break;
             ++c;
             x<<=1;
             if (x==0) break;
             
            }
            return c;
           }
           protected static int FlipBits(int k,int bits)
           {
            int lm=1<<(bits-1);
            int rm=1;
            int r=0;
            while (lm != 0)
            {
             if ((k&rm)!=0)
             {
              r|=lm;
              lm>>=1;
              rm<<=1;
             }
            }
            return r;
           }
          };

          //increase degree to power of two
          protected static PolynomialFFT stretchFFT(PolynomialFFT p)
          {
           int n=1;
           int d=p.m_nDegree;
           while(true)
           {
            if (d<=n) break;
            n<<=1;
            if (n==0)
            {
             throw new ArithmeticException("StretchFFT failed");
            }
            n<<=1;
            return new PolynomialFFT(p.stretch(n));
           }
          }

          //待續

          posted @ 2006-02-16 10:16 一天一點愛戀 閱讀(1095) | 評論 (0)編輯 收藏
           

          ping命令詳解

                  對于Windows下ping命令相信大家已經再熟悉不過了,但是能把ping的功能發揮到最大的人卻并不是很多,當然我也并不是說我可以讓ping發揮最大的功能,我也只不過經常用ping這個工具,也總結了一些小經驗,現在和大家分享一下。
          現在我就參照ping命令的幫助說明來給大家說說我使用ping時會用到的技巧,ping只有在安裝了TCP/IP協議以后才可以使用:

               Options:


          -t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C.
          不停的ping地方主機,直到你按下Control-C。
          此功能沒有什么特別的技巧,不過可以配合其他參數使用,將在下面提到。

          -a Resolve addresses to hostnames.
          解析計算機NetBios名。
          示例:C:\>ping -a 192.168.1.21
          Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data:
          Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
          Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
          Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
          Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
          Ping statistics for 192.168.1.21:
          Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds:
          Minimum = 0ms, Maximum = 0ms, Average = 0ms
          從上面就可以知道IP為192.168.1.21的計算機NetBios名為iceblood.yofor.com。


          -l size Send buffer size.
          定義echo數據包大小。
          在默認的情況下windows的ping發送的數據包大小為32byt,我們也可以自己定義它的大小,但有一個大小的限制,就是最大只能發送65500byt,也許有人會問為什么要限制到65500byt,因為Windows系列的系統都有一個安全漏洞(也許還包括其他系統)就是當向對方一次發送的數據包大于或等于65532時,對方就很有可能擋機,所以微軟公司為了解決這一安全漏洞于是限制了ping的數據包大小。雖然微軟公司已經做了此限制,但這個參數配合其他參數以后危害依然非常強大,比如我們就可以通過配合-t參數來實現一個帶有攻擊性的命令:(以下介紹帶有危險性,僅用于試驗,請勿輕易施于別人機器上,否則后果自負)
          C:\>ping -l 65500 -t 192.168.1.21
          Pinging 192.168.1.21 with 65500 bytes of data:
          Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
          Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
          ………………
          這樣它就會不停的向192.168.1.21計算機發送大小為65500byt的數據包,如果你只有一臺計算機也許沒有什么效果,但如果有很多計算機那么就可以使對方完全癱瘓,我曾經就做過這樣的試驗,當我同時使用10臺以上計算機ping一臺Win2000Pro系統的計算機時,不到5分鐘對方的網絡就已經完全癱瘓,網絡嚴重堵塞,HTTP和FTP服務完全停止,由此可見威力非同小可。

          r count Record route for count hops.
          在“記錄路由”字段中記錄傳出和返回數據包的路由。
          在一般情況下你發送的數據包是通過一個個路由才到達對方的,但到底是經過了哪些路由呢?通過此參數就可以設定你想探測經過的路由的個數,不過限制在了9個,也就是說你只能跟蹤到9個路由,如果想探測更多,可以通過其他命令實現,我將在以后的文章中給大家講解。以下為示例:
          C:\>ping -n 1 -r 9 202.96.105.101 (發送一個數據包,最多記錄9個路由)


          Pinging 202.96.105.101 with 32 bytes of data:


          Reply from 202.96.105.101: bytes=32 time=10ms TTL=249
          Route: 202.107.208.187 ->
          202.107.210.214 ->
          61.153.112.70 ->
          61.153.112.89 ->
          202.96.105.149 ->
          202.96.105.97 ->
          202.96.105.101 ->
          202.96.105.150 ->
          61.153.112.90


          Ping statistics for 202.96.105.101:
          Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
          Approximate round trip times in milli-seconds:
          Minimum = 10ms, Maximum = 10ms, Average = 10ms
          從上面我就可以知道從我的計算機到202.96.105.101一共通過了202.107.208.187 ,202.107.210.214 , 61.153.112.70 , 61.153.112.89 , 202.96.105.149 , 202.96.105.97這幾個路由。

          ping命令的其他技巧:在一般情況下還可以通過ping對方讓對方返回給你的TTL值大小,粗略的判斷目標主機的系統類型是Windows系列還是UNIX/Linux系列,一般情況下Windows系列的系統返回的TTL值在100-130之間,而UNIX/Linux系列的系統返回的TTL值在240-255之間,TTL 字段值可以幫助我們識別操作系統類型。
          UNIX 及類 UNIX 操作系統 ICMP 回顯應答的 TTL 字段值為 255
          Compaq Tru64 5.0 ICMP 回顯應答的 TTL 字段值為 64
          微軟 Windows NT/2K操作系統 ICMP 回顯應答的 TTL 字段值為 128
          微軟 Windows 95 操作系統 ICMP 回顯應答的 TTL 字段值為 32
          當然TTL的值在對方的主機里是可以修改的,Windows系列的系統可以通過修改注冊表以下鍵值實現:
          [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
          "DefaultTTL"=dword:000000ff
          255---FF
            128---80
            64----40
            32----20
          好了,ping命令也基本上完全講解完了,其中還有-j,-k參數我還沒有詳細說明,由于某些原因也包括我自己所收集的資料過少這里也沒有向大家詳細介紹,請大家見諒,如果在看了這篇文章的朋友當中有知道得比我更多的,以及其他使用技巧的也希望您能告訴我,并在此先謝過。
           

          posted @ 2005-12-30 13:46 一天一點愛戀 閱讀(299) | 評論 (0)編輯 收藏
           

          Windows 開始→運行→命令 集錦
          winver---------檢查Windows版本  
          wmimgmt.msc----打開windows管理體系結構(WMI)  
          wupdmgr--------windows更新程序  
          wscript--------windows腳本宿主設置  
          write----------寫字板  
          winmsd---------系統信息  
          wiaacmgr-------掃描儀和照相機向導  
          winchat--------XP自帶局域網聊天  

          mem.exe--------顯示內存使用情況  
          Msconfig.exe---系統配置實用程序  
          mplayer2-------簡易widnows media player  
          mspaint--------畫圖板  
          mstsc----------遠程桌面連接  
          mplayer2-------媒體播放機  
          magnify--------放大鏡實用程序  
          mmc------------打開控制臺  
          mobsync--------同步命令  

          dxdiag---------檢查DirectX信息  
          drwtsn32------ 系統醫生  
          devmgmt.msc--- 設備管理器  
          dfrg.msc-------磁盤碎片整理程序  
          diskmgmt.msc---磁盤管理實用程序  
          dcomcnfg-------打開系統組件服務  
          ddeshare-------打開DDE共享設置  
          dvdplay--------DVD播放器  

          net stop messenger-----停止信使服務  
          net start messenger----開始信使服務  
          notepad--------打開記事本  
          nslookup-------網絡管理的工具向導  
          ntbackup-------系統備份和還原  
          narrator-------屏幕“講述人”  
          ntmsmgr.msc----移動存儲管理器  
          ntmsoprq.msc---移動存儲管理員操作請求  
          netstat -an----(TC)命令檢查接口  

          syncapp--------創建一個公文包  
          sysedit--------系統配置編輯器  
          sigverif-------文件簽名驗證程序  
          sndrec32-------錄音機  
          shrpubw--------創建共享文件夾  
          secpol.msc-----本地安全策略  
          syskey---------系統加密,一旦加密就不能解開,保護windows xp系統的雙重密碼  
          services.msc---本地服務設置  
          Sndvol32-------音量控制程序  
          sfc.exe--------系統文件檢查器  
          sfc /scannow---windows文件保護  

          tsshutdn-------60秒倒計時關機命令  
          tourstart------xp簡介(安裝完成后出現的漫游xp程序)  
          taskmgr--------任務管理器  

          eventvwr-------事件查看器  
          eudcedit-------造字程序  
          explorer-------打開資源管理器  

          packager-------對象包裝程序  
          perfmon.msc----計算機性能監測程序  
          progman--------程序管理器  

          regedit.exe----注冊表  
          rsop.msc-------組策略結果集  
          regedt32-------注冊表編輯器  
          rononce -p ----15秒關機  
          regsvr32 /u *.dll----停止dll文件運行  
          regsvr32 /u zipfldr.dll------取消ZIP支持  

          cmd.exe--------CMD命令提示符  
          chkdsk.exe-----Chkdsk磁盤檢查  
          certmgr.msc----證書管理實用程序  
          calc-----------啟動計算器  
          charmap--------啟動字符映射表  
          cliconfg-------SQL SERVER 客戶端網絡實用程序  
          Clipbrd--------剪貼板查看器  
          conf-----------啟動netmeeting  
          compmgmt.msc---計算機管理  
          cleanmgr-------垃圾整理  
          ciadv.msc------索引服務程序  

          osk------------打開屏幕鍵盤  
          odbcad32-------ODBC數據源管理器  
          oobe/msoobe /a----檢查XP是否激活  
          lusrmgr.msc----本機用戶和組  
          logoff---------注銷命令  

          iexpress-------木馬捆綁工具,系統自帶  

          Nslookup-------IP地址偵測器  

          fsmgmt.msc-----共享文件夾管理器  

          utilman--------輔助工具管理器  

          gpedit.msc-----組策略

          posted @ 2005-12-30 13:41 一天一點愛戀 閱讀(414) | 評論 (0)編輯 收藏
           
           我想大家都看過各種各樣的滾動(最常用的就是用在新聞的更新上面),一般情況下只要不是圖片,都是用HTML本身就有提供一個很不錯的滾動標記——marquee來完成的(用JS也可以同樣實現這種效果);當然并不是說圖片就不能那樣做。
            以下為marquee的一些基本的參數:
            該標記語法格式如下:
          <marquee
          aligh=left|center|right|top|bottom
          bgcolor=#n
          direction=left|right|up|down
          behavior=type
          height=n
          hspace=n
          scrollamount=n
          Scrolldelay=n
          width=n
          VSpace=n
          loop=n>內容</marquee>

            下面解釋一下各參數的含義:
            align:是設定活動字幕的位置,除了居左、居中、居右三種位置外,又增加靠上(top)和靠下(bottom)兩種位置。
            Bgcolor:用于設定活動字幕的背景顏色,可以使用英文的單詞也可以是十六進制數的。
            Direction:用于設定活動字幕的滾動方向是向左(left)、向右(right)、向上(up)、向下(down)。
            Behavior:用于設定滾動的方式,主要由三種方式:
          behavior="scroll"表示由一端滾動到另一端;
          behavior="slide":表示由一端快速滑動到另一端,且不再重復;
          behavior="alternate"表示在兩端之間來回滾動。
            Height:用于設定滾動字幕的高度。
            Width:則設定滾動字幕的寬度。
            Hspace和vspace:分別用于設定滾動字幕的左右邊框和上下邊框的寬度。
            Scrollamount:用于設定活動字幕的滾動距離。數值越小,滾動的速度就越快。
            scrolldelay:用于設定滾動兩次之間的延遲時間,數值越小,間隔就越小。
            Loop:用于設定滾動的次數,當loop=-1表示一直滾動下去,直到頁面更新。其中默認情況是向左滾動無限次,字幕高度是文本高度;滾動范圍:水平滾動的寬度是當前位置的寬度;垂直滾動的高度是當前位置的高度。

            現在要介紹的是一種新型的滾動,利用JS的方法來做字幕的滾動:向上,在中間停頓一到兩秒(就像經典的這種):
            將以下代碼貼到您要顯示的位置就可以了:
          <script>
          var marqueeContent=new Array(); //定義一個數組,用來存放顯示內容
          marqueeContent[0]='<A href="#" onclick="reinitMarquee()">刷新最新列表</FONT></A>';
          marqueeContent[1]='<a href=http://www.blueidea.com/updatelist.asp target=_blank>站點最新更新六十條</a>';
          marqueeContent[2]='<A href=http://www.blueidea.com/tech/graph/2003/875.asp target=_blank>羽毛效果制作教程</a>';
          marqueeContent[3]='<A href=http://www.blueidea.com/tech/program/2003/831.asp target=_blank>MySQL&ASP</a>';
          marqueeContent[4]='<A href=http://www.blueidea.com/tech/web/2003/874.asp target=_blank>初步了解CSS3</a>';
          marqueeContent[5]='<A href=http://www.blueidea.com/tech/graph/2003/864.asp target=_blank>Fireworks MX 2004執行面版操作</a>';
          marqueeContent[6]='<A href=http://www.blueidea.com/tech/graph/2003/872.asp target=_blank>Fireworks MX 2004等高漸變填充</a>';
          marqueeContent[7]='<A href=http://www.blueidea.com/photo/gallery/2003/873.asp target=_blank>瓶子里的花</a>';
          marqueeContent[8]='<A href=http://www.blueidea.com/tech/graph/2003/871.asp target=_blank>Fireworks MX 實現選項卡式效果</a>';
          marqueeContent[9]='<A href=http://www.blueidea.com/photo/gallery/2003/870.asp target=_blank>情侶:黑白的愛情空氣</a>';
          marqueeContent[10]='<A href=http://www.blueidea.com/tech/graph/2003/866.asp target=_blank>制作 MAC 風格的蘋果標志</a>';
          marqueeContent[11]='<A href=http://www.blueidea.com/tech/graph/2003/868.asp target=_blank>蛋殼制作及破殼而出的人物合成</a>';

          var marqueeInterval=new Array(); //定義一些常用而且要經常用到的變量
          var marqueeId=0;
          var marqueeDelay=4000;
          var marqueeHeight=16;

          //接下來的是定義一些要使用到的函數
          Array.prototype.random=function() {
          var a=this;
          var l=a.length;
          for(var i=0;i<l;i++) {
          var r=Math.floor(Math.random()*(l-i));
          a=a.slice(0,r).concat(a.slice(r+1)).concat(a[r]);
          }
          return a;
          }
          function initMarquee() {
          marqueeContent=marqueeContent.random();
          var str='';
          for(var i=0;i<Math.min(3,marqueeContent.length);i++) str+=(i>0?'  ':'')+marqueeContent[i];
          document.write('<div id=marqueeBox style="overflow:hidden;height:'+marqueeHeight+'px" onmouseover="clearInterval(marqueeInterval[0])" onmouseout="marqueeInterval[0]=setInterval(\'startMarquee()\',marqueeDelay)"><div>'+str+'</div></div>');
          marqueeId+=2;
          if(marqueeContent.length>3)marqueeInterval[0]=setInterval("startMarquee()",marqueeDelay);
          }
          function reinitMarquee() {
          js_scroll_content.src='scroll_content2.js';
          marqueeContent=marqueeContent.random();
          var str='';
          for(var i=0;i<Math.min(3,marqueeContent.length);i++) str+=(i>0?'  ':'')+marqueeContent[i];
          marqueeBox.childNodes[(marqueeBox.childNodes.length==1?0:1)].innerHTML=str;
          marqueeId=2;
          }
          function startMarquee() {
          var str='';
          for(var i=0;(i<3)&&(marqueeId+i<marqueeContent.length);i++) {
          str+=(i>0?'  ':'')+marqueeContent[marqueeId+i];
          }
          marqueeId+=3;
          if(marqueeId>marqueeContent.length)marqueeId=0;

          if(marqueeBox.childNodes.length==1) {
          var nextLine=document.createElement('DIV');
          nextLine.innerHTML=str;
          marqueeBox.appendChild(nextLine);
          }
          else {
          marqueeBox.childNodes[0].innerHTML=str;
          marqueeBox.appendChild(marqueeBox.childNodes[0]);
          marqueeBox.scrollTop=0;
          }
          clearInterval(marqueeInterval[1]);
          marqueeInterval[1]=setInterval("scrollMarquee()",20);
          }
          function scrollMarquee() {
          marqueeBox.scrollTop++;
          if(marqueeBox.scrollTop%marqueeHeight==(marqueeHeight-1)){
          clearInterval(marqueeInterval[1]);
          }
          }
          initMarquee();
          </script>

            以上已經將網站的這種滾動的做法做了一個大概的介紹。
          posted @ 2005-07-29 11:39 一天一點愛戀 閱讀(451) | 評論 (0)編輯 收藏
           
          Copyright © 一天一點愛戀 Powered by: 博客園 模板提供:滬江博客
          主站蜘蛛池模板: 邳州市| 陆川县| 福海县| 东乡县| 佛冈县| 莱西市| 山丹县| 确山县| 阿巴嘎旗| 鸡泽县| 舞阳县| 古蔺县| 都匀市| 鄯善县| 长乐市| 昌邑市| 淮南市| 仙桃市| 汉中市| 平陆县| 无极县| 晋中市| 南郑县| 和静县| 青州市| 鄂托克旗| 丰台区| 泽普县| 岳阳市| 馆陶县| 松滋市| 东乡| 枣庄市| 马尔康县| 日照市| 沙田区| 浦江县| 永康市| 长沙县| 腾冲县| 清原|