void select(int arr[10])
{
int i,j,min,idx,tp;
for(i=0;i<10-1;i++)
{
min=INT_MAX;
idx = -1;
for(j=i;j<10;j++)
{
if(min>=arr[j])
{
min = arr[j];
idx =j;
}
}
tp = arr[i];
arr[i] = arr[idx];
arr[idx] = tp;
}
}
int main()
{
int arr[10]={5,3,2,2,0,1,3,4,6,8};
int i;
select(arr);
for(i=0;i<10;i++)
printf("%d ",arr[i]);
printf("\n");
return 0;
}
2019年7月18日 星期四
2019年7月13日 星期六
C 常數指標筆記
pointer to variable can not be modified, but pointer can be modified.
int a=1;
int b=3;
int const *p=&a;
const int *p2=&a;
*p=2; // failed
*p2=2; // failed
p=&b; // success
p2=&b; //success
pointer to variable can be modified, but pointer can not be modified.
int a=1;
int b=3;
int *const p=&a;
*p=2; // success
p=&b; // failed
pointer to variable can not be modified, and pointer can not be modified.
int a=1;
int b=3;
const int *const p=&a;
*p=2; // failed
p=&b; // failed
int a=1;
int b=3;
int const *p=&a;
const int *p2=&a;
*p=2; // failed
*p2=2; // failed
p=&b; // success
p2=&b; //success
pointer to variable can be modified, but pointer can not be modified.
int a=1;
int b=3;
int *const p=&a;
*p=2; // success
p=&b; // failed
pointer to variable can not be modified, and pointer can not be modified.
int a=1;
int b=3;
const int *const p=&a;
*p=2; // failed
p=&b; // failed
2019年6月23日 星期日
windows git push時credential出錯解法
windows 上需要push檔案到github上時,需要輸入帳密,若輸入完後,提示fatal: HttpRequestException encountered. ,可開啟左下角windows圖示,使用windows搜尋列搜尋Credential Manager,點入後清除git相關credential,之後再重新登入即可成功push。
2019年3月29日 星期五
scikit-learn train_test_split
使用方式:
import numpy as np
from sklearn.model_selection import train_test_split
x = [1, 2, 3, 4]
y = [5, 6, 7, 8]
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.25, random_state=0)
print(x_train,x_test)
輸出為:
[4, 2, 1] [3]
由此範例,可得知train_test_split會先對x和y做打亂的動作,再依據test_size參數,切train和test set。
import numpy as np
from sklearn.model_selection import train_test_split
x = [1, 2, 3, 4]
y = [5, 6, 7, 8]
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.25, random_state=0)
print(x_train,x_test)
輸出為:
[4, 2, 1] [3]
由此範例,可得知train_test_split會先對x和y做打亂的動作,再依據test_size參數,切train和test set。
2019年3月26日 星期二
將用戶加入docker群組內
將使用者加入docker群組內
sudo usermod -aG docker user
在免重開機的情況下,更新group cache
su - user
重啟docker服務
sudo service docker restart
接著使用者即可在免root權限的情況下使用docker。
sudo usermod -aG docker user
在免重開機的情況下,更新group cache
su - user
重啟docker服務
sudo service docker restart
接著使用者即可在免root權限的情況下使用docker。
windows架設之server連外設定
windows系統如果有,用自己電腦可用localhost存取到自身的server服務,但其他電腦卻無法連到此電腦的服務,這個情況發生。可以檢查是否為防毒軟體與防火牆的問題
解決方法為先檢查自己裝的防毒軟體是否擋掉了,可到防毒軟體內設定白名單,接著再用其他電腦重連測試,若還是沒有。可先關閉防毒軟體
,在進入windows開始列搜尋"防火牆",可找到"具有安全性的進階windows防火牆",點開進入視窗。
可在左邊的導航列,可看到輸入規則與輸出規則。
選取輸入規則,並點右鍵選新增規則。
接著根據需求選取所需要允許的程式或是連接阜,並按下一步。
如果選擇的是程式選項,那這邊就要選取想要允許的程式路徑,並點下一步;
如果選擇的是連接阜,那便要選定是tcp或是udp,並設定需要允許
特定本機連接阜port數字,並點下一步。
選取允許連線,並按下一步。
這裡會提示何時套用此規則,這邊依據需求選取即可,若是要提供對外服務,則照預設,三個選項皆勾起來即可,並點下一步。
這裡簡單的寫一下,這個規則的描述,並按下完成即可
當設定完後,且防火牆關閉的狀態下,理當外部電腦可連接到本機的服務。
如果還是沒有,可在設定輸出規則,而設定方式與前述一樣,設定完後理當可讓外部電腦連接到此電腦的服務。
若有測試成功,接著可嘗試再將防毒軟體開啟,並做白名單或相關的設定即可。
解決方法為先檢查自己裝的防毒軟體是否擋掉了,可到防毒軟體內設定白名單,接著再用其他電腦重連測試,若還是沒有。可先關閉防毒軟體
可在左邊的導航列,可看到輸入規則與輸出規則。
選取輸入規則,並點右鍵選新增規則。
接著根據需求選取所需要允許的程式或是連接阜,並按下一步。
如果選擇的是程式選項,那這邊就要選取想要允許的程式路徑,並點下一步;
如果選擇的是連接阜,那便要選定是tcp或是udp,並設定需要允許
特定本機連接阜port數字,並點下一步。
選取允許連線,並按下一步。
這裡會提示何時套用此規則,這邊依據需求選取即可,若是要提供對外服務,則照預設,三個選項皆勾起來即可,並點下一步。
這裡簡單的寫一下,這個規則的描述,並按下完成即可
當設定完後,且防火牆關閉的狀態下,理當外部電腦可連接到本機的服務。
如果還是沒有,可在設定輸出規則,而設定方式與前述一樣,設定完後理當可讓外部電腦連接到此電腦的服務。
若有測試成功,接著可嘗試再將防毒軟體開啟,並做白名單或相關的設定即可。
2019年3月19日 星期二
linux crontab 使用
編輯排程:
crontab -e
若出現提示選項,需要選定使用的編輯器,這邊直接選vim.basic即可
(vim用法請看這裡)
在文件最底下新增一行
SHELL=/bin/bash
這是用來指定crontab在啟動的時候會使用哪種shell,可根據需求選定想使用的shell,這邊是建議選定bash shell,因為其指令較sh shell齊全,且多數linux系統皆有裝。
接著在下方繼續新增一行,
根據需求設定何時要出發什麼樣的指令
ex:
0 12 * * MON touch /home/user/test
此指令是代表每個禮拜一的中午12點0分會touch /home/user下的test檔案
or
0 12 * * WED source/home/user/run.sh
測試:
有可能crontab的觸發時間為UTC時間,會與當地時間差了n小時,導致沒有在預期的時間點觸發,故可先設定一個比現在時間晚一點的觸發時間,測試crontab是否有正確工作。
若的確有crontab觸發的時間標準並非當地時間,有兩種解法:
1. 將crontab改為讀當地時間(若有管理員權限的話)
下date指令。
若顯示出來的時間與當地時間不同,則須透過下列指令設置系統的當地時間,
這裡的範例時區是asia/taipei,可根據需求作修改。
sudo timedatectl set-timezone asia/taipei
接著重新啟動cron deamon
sudo service cron restart
2. 另外一種為照著UTC時間反推回去設定觸發時間,例如:預計禮拜一中午12點要觸發任務,寫觸發指令的時候可改為4點觸發(即UTC 4點的意思)
顯示排程:
crontab -l
訂閱:
文章 (Atom)