這裡先舉個簡單的例子,很多朋友以前一定寫過類似這樣的例子:求編寫一函式,輸入年月日,求出該日是該年的第幾天.
好的,現在大家**會怎麼寫呢?我的第一次**大概是這樣的:
intgetday(
intyear,
intmonth,
intday)
//最後在下是否閏年
}今天在fy**上看了連續化處理後,感悟頗深.對上面的**做了連續化處理:
**//
返回這天是那一年的第幾天
intgetday(
intyear,
intmonth,
intday);if
(year
%400==0
||(year
%100
&&year%4
==0))
//判斷閏年
for(
inti=0
; i<
month-1
;i++
)return
sum;
}怎麼樣?簡浩很多吧.
這裡在舉個蛇形矩正輸出的例子:
輸入有多組資料,每組只有一行,包含x,y(1 <= x,y <= 30)和t,輸出x*y螺旋方陣,如果t=0,就輸出逆時針螺旋方陣,否則輸出順時針的
樣例輸入:
3 5 0
4 4 1
樣例輸出(每個數字要佔四個格仔,輸出完一組就接著輸出乙個空行):
1 12 11
2 13 10
3 14 9
4 15 8
5 6 7
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
連續化處理後的**:
**#define
set_xy(x,y,d) x=sym[d][0], y=sym[d][1]
intmain()
, , , };
//連續化處理的關鍵
while
(scanf(
"%d%d%d",
&m,
&n,
&t)
!=eof)
; //
初始化資料
intx, y, dx, dy, d, nstep =2
;for
(x =
1, y =m
+1; x
<=
n; x
++)
//設定上下邊界
map[x][0]
=map[x][y] =-
1;for(x =1
, y =n
+1; x
<=
m; x
++)
//設定左右邊界
map[
0][x]
=map[y][x] =-
1;x =
y =1; d =1
+(t ==0
);set_xy(dx, dy, d);
if(map[y
+dy][x
+dx])
//設定起始方向
for(map[1][
1] =1
;;nstep
++)
//螺旋遍歷
}for
(y =
1; y
<=
n; y
++)
//輸出結果
printf("\n
");}system(
"pause");
return0;
}
資料歸一化和連續資料離散化處理
資料歸一化處理 1.0 1標準化 2.z score標準化 1.0 1標準化 將資料的最大最小值記錄下來,並通過max min作為基數,進行資料的歸一化處理 2.z score標準化 z分數,是乙個分數與平均數的差再除以標準差的過程 z值的量代表著原始分數和母體平均值之間的距離,是以標準差為單位計算...
使用pandas實現連續資料的離散化處理方式
python實現連續資料的離散化處理主要基於兩個函式,pandas.cut和pandas.qcut,前者根據指定分界點對連續資料進行分箱處理,後者則可以根據指定箱子的數量對連續資料進行等寬分箱處理,所謂等寬指的是每個箱子中的資料量是相同的。下面簡單介紹一下這兩個函式的用法 匯入pandas包 imp...
資料離散化處理
離散化,把無限空間中有限的個體對映到有限的空間中去,以此提高演算法的時空效率。通俗的說,離散化是在不改變資料相對大小的條件下,對資料進行相應的縮小。例如 原資料 1,999,100000,15 處理後 1,3,4,2 原資料 處理後 例如有時需要將資料直接作為陣列下標,但因為資料太大而無法開陣列時,...