Time of Update: 2018-12-03
一早上來公司上班,又是沒網的節奏!什麼又做不了!想起昨天了看了些spring-mvc的文檔。就來配置下spring-mvc。由於沒有網路,那就只有spring的官方文檔了。 1. 先是建立個基本工程就ok了。2. 引入spring-mvc的開發包。根據開發文檔只需要三個包。以下是spring的文檔:Copy libraries to 'WEB-INF/lib'First create a 'lib' directory in the'war/WEB-INF' directory. Then,
Time of Update: 2018-12-03
現在來說下代碼的clone和提交.1 首先要理解一個概念就是fork.分支。 github是用fork的方式管理的. 如果你需要去參與一個開源項目。那麼你首先需要去拷貝一份代碼到你的github上。 那麼你的這份代碼就相當於是與原始碼的一個副本。 官方的說法就是分支。 那麼你每次提交代碼就會是更新你自己的fork。 那麼別的分支就可以選擇合并的你的fork。這樣就實現了代碼的管理。2 看下具體過程: 1)首先需要載入你需要提交的檔案: git add
Time of Update: 2018-12-03
1、C++中產生隨機數 需要包含的標頭檔:#include<cstdlib>#include<ctime> 設定隨機種子: srand( time(NULL) );unsigned int i= rand(); 注意:rand()函數產生的隨機數的範圍在0~RAND_MAX之間,RAND_MAX為 0x7fff(32767) 2、當使用sizeof操作符要求數組的大小時,可以直接通過sizeof(數組名)來獲得整個數組的大小,這裡的數組可以是一維數組,也可以是二維數組。
Time of Update: 2018-12-03
久聞git大名,但是一直不知道為何物。現在認真的過了一遍。原來是和svn一樣的版本控制器。具有速度快,分布式管理等優點。現在就來看看git的使用過程,我這裡是用開源中國來Managed 程式碼的,如果是使用github也是一樣的。1 先下載git for windows然後一直點下一步安裝.2 安裝之後,選擇git gui.產生ssh 連結 git 公開金鑰.用命令也可以:$ ssh-keygen -t rsa -C
Time of Update: 2018-12-03
下面是我寫的一個tic-tac-toe的簡單遊戲。 我主要的思路是使用極大極小的搜尋策略。並且體會到博弈程式的好壞很大程度上取決於局面評估函數的好壞。因為機器方希望在所有下一步可以下子的集合中,選擇最優的步法。這是就需要就局面進行評估,需要附加一些知識,而局面的評估值可以是所有這些知識評估的結果之和。 評估函數和程式對局面的搜尋速度是成反比的。 我的程式中評估函數比較弱。 主要有二個類: ~~~~~~~~~~~~~~~~~~~~Map.h~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Time of Update: 2018-12-03
linux ln命令舉例連結有兩種,一種被稱為永久連結(Hard Link),另一種被稱為符號連結(Symbolic Link)。建立永久連結時,連結檔案和被連結檔案必須位於同一個檔案系統中,並且不能建立指向目錄的永久連結。而對符號連結,則不存在這個問題。預設情況下,ln產生永久連結。 ln 命令用途連結檔案。文法將某個檔案連結到一個檔案上ln [ -f | -n] [ -s ] SourceFile [ TargetFile ]將一個或多個檔案連結到一個目錄上ln [ -f | -n] [ -
Time of Update: 2018-12-03
終於 不知道為什麼 也許人就是這樣 我終於捧著Spring的官方文檔 開著有道去研究了 開始去做曾經最不想做的事情 也許是腦袋一下開竅了 發現自己還有很多的地方不足 還有很多的東西需要去學習 沒有任何人的逼迫 只是自己為了成長 我需要接觸 需要熟悉 更多的 更優秀的 開源架構 我想每個人都需要要成長 只有自己開始醒悟 我想你就離你想要的生活更近了一步... 希望有更多人能來一起發展 一起努力 一起做自己想做的事
Time of Update: 2018-12-03
這是一道關於博弈的題目。 我從中得到如下的體會:使用動態規劃的方法來解答要比使用極大極小搜尋演算法,在速度上要快得多。因為極大極小搜尋策略每次都要對當前的局面進行某個最大深度的搜尋,從中選取出最佳的走法。這樣其實是非常耗時的。由於這道題目的本身特點,如果使用動態規劃的話,根據dp的思想就是儲存搜尋過程中的所有狀態。在dp的搜尋過程中,每次都是非常徹底的搜尋,而且由於狀態已經描述清楚並記錄下來,如果產生了相同的狀態,就可以直接使用,這樣速度是很快的。但是從這道題目可以開出,dp中狀態的描述需要進行
Time of Update: 2018-12-03
3.3.1. Injecting dependenciesThe basic principle behind Dependency Injection (DI) is that objects define their dependencies (that is to say the other objects they work with) only through constructor arguments, arguments to a factory method, or
Time of Update: 2018-12-03
研究彙編代碼是理解編譯器以及產生的代碼會如何啟動並執行最有效手段之一。 編譯器最佳化代碼的限制:1、程式設計中存在“儲存空間別名使用”的問題。編譯器必須假設不同的指標可能指向儲存空間中相同的位置。2、函數調用(簡略了。。。具體看書) ~~~~~~~~~~~~~~~基本的編碼原則:效能大幅度提升~~~~~~~~~~~~~~~~~~~ 最佳化程式效能的一些方法:1、將調試完的程式完成編譯器層級上的最佳化。(這個目前還沒找到。。。)2、代碼移出這類最佳化包括識別出要執行多次(例如,在迴圈裡)但是計算結
Time of Update: 2018-12-03
#include <stdio.h>/********************************* * 方法1: 第一維的長度可以不指定 * * 但必須指定第二維的長度 * *********************************/ void print_a(int a[][5], int n, int m) { int i, j;
Time of Update: 2018-12-03
問題描述: 這道題目類似於RPG遊戲,player的目標是在被monster吃掉之前,拿到treasure。在遊戲中,monster分為aggressive和non-aggressive兩種,有不同的吃人能力。player可以run或walk,時間消耗是一樣的。 要求:求出最短拿到treasure的時間。 主要的思路是這樣的:使用A*搜尋演算法,比普通的廣度搜尋速度上要快一點,但演算法上複雜了一些。 在程式設計中使用物件導向的思想。
Time of Update: 2018-12-03
上班時間實在沒事,但是自己不能去閑著。 閑來無事就翻開servlet的源碼來看看,來領略下大神的境界。 順便沾點仙氣。 1. HttpServlet 我想凡是做過servlet開發的都應該知道個類。很多時候做web開發都是直接繼承這個HttpServlet類。然後實現doGet,doPost方法。 來看看它的源碼: 首先是定義了一對靜態變數: private static final String METHOD_DELETE = "DELETE";
Time of Update: 2018-12-03
聲明與定義分離標頭檔:用於記錄聲明代碼模組檔案(c檔案/cpp檔案):用於記錄實現代碼 絕大多數串連程式是把一個模組中的所有函數、變數當作整體串連到執行程式中。只要引用了模組中的一個名字,整個模組就進入執行檔案(如果模組10M,則所有引用過這個模組的執行檔案都要超過10M)多個函數的實現,應該分到不同的模組 可(但不一定)放在一個模組的函數 相互調用的函數 一定會被同時調用的函數 open()/close(), new/
Time of Update: 2018-12-03
記憶化搜尋: 演算法上依然是搜尋的流程,但是搜尋到的一些解用動態規劃的那種思想和模式作一些儲存。 一般說來,動態規劃總要遍曆所有的狀態,而搜尋可以排除一些無效狀態。 更重要的是搜尋還可以剪枝,可能剪去大量不必要的狀態,因此在空間開銷上往往比動態規劃要低很多。 記憶化演算法在求解的時候還是按著自頂向下的順序,但是每求解一個狀態,就將它的解儲存下來,以後再次遇到這個狀態的時候,就不必重新求解了。這種方法綜合了搜尋和動態規劃兩方面的優點,因而還是很有實用價值的。上傳/更換附件動態規劃的另一種實現形式—
Time of Update: 2018-12-03
1、可以在檔案的頭部定義一個__DEBUG宏,值為1,來標記程式處於調試階段還是執行階段。這樣在調試的部分就可以用if(__DEBUG)來包含調試資訊,而不需要調試資訊時,可以直接將__DEBUG宏定義為0.這樣很方便,而且需要屏蔽部分調試資訊時,只需要使用if(!
Time of Update: 2018-12-03
下面是poj3009 curling2.0的題目。http://acm.pku.edu.cn/JudgeOnline/problem?id=3009 使用的是dfs搜尋,代碼如下,從中可以體會到dfs搜尋的常規特點: //POJ3009 Curling
Time of Update: 2018-12-03
最近也快要保研成功了,於是有一個問題一直纏繞在心頭,讀研究生到底讀什嗎?是用三年的時間拚命地追求技術上的卓越嗎?是用三年時間掌握更牛的技術嗎?其實如果把思路放遠一點,就會想到很多值得自己注意的地方。如果單純是為了技術的提高,直接就業或許是一個更好的選擇,所以讀研究生決不是單純的搞技術,更重要的應該是努力掌握研究問題的方法、思路,以及思維的提升。從一個更高的高度來提升自己的能力。另外除了技術的提高,不容忽視的是價值觀或者說生活觀等方面的提高和轉變。要想在進一步使自己有更大的發展,(1)必須對經濟、
Time of Update: 2018-12-03
1、在程式設計中可以使用宏定義:#define __DEBUG 1來進行調試,把調試語句放在if(__DEBUG)中,這樣如果不想列印出調試語句,可以直接將__DEBUG宏定義改為 #define __DEBUG
Time of Update: 2018-12-03
下面是八數位問題的一些演算法實現: 下面的代碼使用的是迭代加深的搜尋策略,由於這個演算法是dfs搜尋策略的改進,所以在dfs遞迴調用返回時,還是需要進行狀態還原的: /* *迭代加深搜尋 **/#include<cstdio>#include<queue>#include<stack>#include<ctime>#include<cstring>using namespace std;#define HashTableSize 36