在屬於自己的偉大航道上冒險
目標:邁向程式設計師之路,目前還是個初級新手,網誌不定期更新,請大家多多指教
2018年4月24日 星期二
網路安全--上課筆記
做網路安全相關工作的人,需要了解每層的架構,因為每層的攻擊方法也不同。
protocal stack
IP分兩種
虛擬(Private, Virtual)IP -> 子網路遮罩的長度有關
192.168.X.X 16bits
172.16.X.X ~ 172.31.X.X 12bits
10.0.X.X ~ 10.X.X.X 08bits
實體(Public)IP -> 168.192.X.X
合法的子網路遮罩(2^8個=256)
255.255.255.0
11111111.11111111.11111111.00000000
255.255.255.128
11111111.11111111.11111111.10000000
255.255.255.192
11111111.11111111.11111111.11000000
255.255.255.224
11111111.11111111.11111111.11100000
255.255.255.240
11111111.11111111.11111111.11110000
255.255.255.248
11111111.11111111.11111111.11111000
255.255.255.252
11111111.11111111.11111111.11111100
其中有三個不能用
192.168.1.0(代表此段網路subnet)/24(代表前子網路遮罩的bits(24個1))
192.168.1.255(broadcast)
192.168.1.254(閘道gateway)當router找不出適合的路時使用(Default Gateway)。
------------------------------------------------------------
Header Payload (出現在L2~L5層中)
1. L5到L2的過程叫封裝(Encapsulation)
2. L2到L5的過程叫解封裝(Decapsulation)
------------------------------------------------------
L5 |Header|Payload|
| UA | Data |
------------------------------------------------------
L4 |Header| Payload |
| Seg | Payload |
------------------------------------------------------
L3 |Header| Payload |
| IP | Payload |
------------------------------------------------------
L2 |Header| Payload |
------------------------------------------------------
操作WireShark
WireShark-> 乙太網路
2018/03/21 上課筆記
protocal stack
IP分兩種
虛擬(Private, Virtual)IP -> 子網路遮罩的長度有關
192.168.X.X 16bits
172.16.X.X ~ 172.31.X.X 12bits
10.0.X.X ~ 10.X.X.X 08bits
實體(Public)IP -> 168.192.X.X
合法的子網路遮罩(2^8個=256)
255.255.255.0
11111111.11111111.11111111.00000000
255.255.255.128
11111111.11111111.11111111.10000000
255.255.255.192
11111111.11111111.11111111.11000000
255.255.255.224
11111111.11111111.11111111.11100000
255.255.255.240
11111111.11111111.11111111.11110000
255.255.255.248
11111111.11111111.11111111.11111000
255.255.255.252
11111111.11111111.11111111.11111100
其中有三個不能用
192.168.1.0(代表此段網路subnet)/24(代表前子網路遮罩的bits(24個1))
192.168.1.255(broadcast)
192.168.1.254(閘道gateway)當router找不出適合的路時使用(Default Gateway)。
------------------------------------------------------------
Header Payload (出現在L2~L5層中)
1. L5到L2的過程叫封裝(Encapsulation)
2. L2到L5的過程叫解封裝(Decapsulation)
------------------------------------------------------
L5 |Header|Payload|
| UA | Data |
------------------------------------------------------
L4 |Header| Payload |
| Seg | Payload |
------------------------------------------------------
L3 |Header| Payload |
| IP | Payload |
------------------------------------------------------
L2 |Header| Payload |
------------------------------------------------------
操作WireShark
WireShark-> 乙太網路
2018/03/21 上課筆記
2018年4月1日 星期日
[C_RU14-易] 好高的水晶塔(C++)
[C_RU14-易] 好高的水晶塔
一定很多人在婚宴的典禮上看過用水晶杯所疊成的金字塔 。 今天小明的姐姐要準備婚禮了,她也希望可以在婚宴上有一座用水晶杯疊成的金字塔,可是她不知道到底需要準備多少杯子才能剛好疊成她想要的層數 。 小明的姊姊想要的的金字塔是以每一層都是正方形所疊出來的塔 , 聰明的你可以幫小明的姊姊計算一下她想要疊的層數到底需要多少杯子才夠嗎 ? 當輸入為 -1 時結束程式 。
輸入格式 :
水晶杯塔的層數 N ( 1 £ N £ 1000)
輸出格式 :
需要最少的杯子數量
Sample input :
2
3
6
-1
Sample output
5
14
91
輸入格式 :
水晶杯塔的層數 N ( 1 £ N £ 1000)
輸出格式 :
需要最少的杯子數量
Sample input :
2
3
6
-1
Sample output
5
14
91
- #include <iostream>
- #include<iomanip>
- using namespace std;
- int factorial(int n)
- {
- if(n==1)
- {
- return(1);
- }
- else
- {
- return factorial(n-1) + n*n;
- }
- }
- int main() {
- // [C_RU14-易] 好高的水晶塔
- double N;
- while(cin >> N)
- {
- if(N == -1)
- {
- break;
- }
- else
- {
- for (double i=1; i<= N; i++)
- {
- if(i == N)
- {
- cout << factorial(i) << endl;
- }
- }
- }
- }
- return 0;
- }
[C_RU25-易] 遞迴練習f(n)=3f(n-1)+g(n-1)﹐g(n)=-f(n-1)+g(n-1)(C++)
[C_RU25-易] 遞迴練習f(n)=3f(n-1)+g(n-1)﹐g(n)=-f(n-1)+g(n-1)
Time Limit: 1 seconds
問題描述 :
由式子 f(n)=3f(n-1)+g(n-1),g(n)=-f(n-1)+g(n-1) 且 f(1)=2 , g(1)=-6 ,輸入 n 值,求 f(n) 及 g(n)
輸入說明 :
輸入正整數 n 。其中 2 ≤ n ≤ 23.
輸出說明 :
依序輸出 f(n)、g(n) 的值,數值之間,隔一個空白。
範例 :
*******我沒用遞迴********
問題描述 :
由式子 f(n)=3f(n-1)+g(n-1),g(n)=-f(n-1)+g(n-1) 且 f(1)=2 , g(1)=-6 ,輸入 n 值,求 f(n) 及 g(n)
輸入說明 :
輸入正整數 n 。其中 2 ≤ n ≤ 23.
輸出說明 :
依序輸出 f(n)、g(n) 的值,數值之間,隔一個空白。
範例 :
輸入範例 | 輸出範例 |
2 | 0 -8 |
3 | -8 -8 |
*******我沒用遞迴********
- #include <iostream>
- #include <iomanip>
- #include <vector>
- using namespace std;
- int main() {
- // [C_RU25-易] 遞迴練習
- // f(n)=3f(n-1)+g(n-1)
- // g(n)=-f(n-1)+g(n-1)
- double N;
- cin >> N;
- vector<int> f;
- vector<int> g;
- for (double i=0; i< N; i++)
- {
- if(i == 0)
- {
- f.push_back(2);
- g.push_back(-6);
- }
- else
- {
- f.push_back(3*f[i-1] + g[i-1]);
- g.push_back(-1*f[i-1] + g[i-1]);
- }
- }
- cout << f[N-1] << " " << g[N-1] << endl;
- return 0;
- }
[C_RU24-易] 遞迴練習f(n)=2f(n-1)/(1+2f(n-1))(C++)
[C_RU24-易] 遞迴練習f(n)=2f(n-1)/(1+2f(n-1))
Time Limit: 1 seconds
問題描述 :
輸入說明 :
輸入正整數 n 。其中 2 ≤ n ≤ 18.
輸出說明 :
輸出 f ( n ) 的值,四捨五入至小數點後第五位。
範例 :
問題描述 :
輸入說明 :
輸入正整數 n 。其中 2 ≤ n ≤ 18.
輸出說明 :
輸出 f ( n ) 的值,四捨五入至小數點後第五位。
範例 :
輸入範例 | 輸出範例 |
3 | 0.61538 |
- #include <iostream>
- #include<iomanip>
- using namespace std;
- double factorial(int n)
- {
- if(n==1)
- {
- return(2);
- }
- else
- {
- return (factorial(n-1)*2)/(factorial(n-1)*2+1);
- }
- }
- int main() {
- // [C_RU24-易] 遞迴練習f(n)=2f(n-1)/(1+2f(n-1))
- double N;
- cin >> N;
- for (double i=1; i<= N; i++)
- {
- if(i == N)
- {
- cout << fixed << setprecision(5) << (double)factorial(i) << endl;
- }
- }
- return 0;
- }
[C_RU23-易] 遞迴練習2f(n)=f(n-1)+2(C++)
[C_RU23-易] 遞迴練習2f(n)=f(n-1)+2
Time Limit: 1 seconds
問題描述 :
由式子 2f(n)=f(n-1)+2 ,且 f(1)=1 ,輸入 n 值,求 f( n ).
輸入說明 :
輸入正整數 n 。其中 2 ≤ n ≤ 18.
輸出說明 :
輸出 f( n ) 的值,四捨五入至小數點後第五位。
範例 :
問題描述 :
由式子 2f(n)=f(n-1)+2 ,且 f(1)=1 ,輸入 n 值,求 f( n ).
輸入說明 :
輸入正整數 n 。其中 2 ≤ n ≤ 18.
輸出說明 :
輸出 f( n ) 的值,四捨五入至小數點後第五位。
範例 :
輸入範例 | 輸出範例 |
3 | 1.75000 |
- #include <iostream>
- #include<iomanip>
- using namespace std;
- double factorial(int n)
- {
- if(n==1)
- {
- return(1);
- }
- else
- {
- return (double)(((double)factorial(n-1))+(double)2)/2;
- }
- }
- int main() {
- // [C_RU23-易] 遞迴練習2f(n)=f(n-1)+2
- double N;
- cin >> N;
- for (double i=1; i<= N; i++)
- {
- if(i == N)
- {
- cout << fixed << setprecision(5) << (double)factorial(i) << endl;
- }
- }
- return 0;
- }
[C_RU10-中] 爬樓梯(C++)
[C_RU10-中] 爬樓梯
1. 問題描述:
一至二樓有 8 級樓梯,某人上樓,每次可跨 1 級或 2 級,不同上樓的方法有幾種?
輸入說明:
輸入樓梯之級數 n(3 ≦ n ≦ 20) 。
輸出說明:
輸出不同上樓的方法總數。
範例 :
一至二樓有 8 級樓梯,某人上樓,每次可跨 1 級或 2 級,不同上樓的方法有幾種?
輸入說明:
輸入樓梯之級數 n(3 ≦ n ≦ 20) 。
輸出說明:
輸出不同上樓的方法總數。
範例 :
Sample Input | Sample Output |
3 | 3 |
13 | 377 |
- #include <iostream>
- #include<iomanip>
- using namespace std;
- int fib(int n)
- {
- if(n==1 || n == 2)
- {
- return(n);
- }
- else
- {
- return fib(n-1) + fib(n-2);
- }
- }
- int main() {
- // [C_RU10-中] 爬樓梯
- // 費式數列
- double N;
- cin >> N;
- for (double i=1; i<= N; i++)
- {
- if(i == N)
- {
- cout << fib(i) << endl;
- }
- }
- return 0;
- }
訂閱:
文章 (Atom)