2016年10月21日 星期五

Ubuntu 16.04 + Nvidia GT 630M 安裝 nvidia driver


1.在終端機更新系統抓取程式的repo

sudo add-apt-repository ppa:xorg-edgers/ppa -y
sudo apt-get update

2.在開啟Ununtu的additional driver工具,自動搜尋匹配該顯示卡的驅動,並apply安裝之。這裡我使用的是367版本的驅動



3.安裝完後,reboot,會發現無法進入登入畫面,須按快捷鍵ctrl+alt+F1進入tty1的文字界面,登入並做修改,須以指令方式重新安裝nvidia 367版本的驅動。

sudo apt-get remove --purge nvidia*
sudo apt-get install nvidia-367

4.安裝完後,reboot,即可正常登入


2016年9月13日 星期二

tcsh prompt 樣式修改

需在使用者目錄下新增一檔案,名為.cshrc
內容如:
set prompt = "%B%{^[[33m%}%n%{^[[31m%}@%{^[[33m%}%m%{^[[36m%}%T%{^[[32m%}#"
編輯完後重新進入tcsh,即會更新prompt樣式

在測試時可直接打
set prompt =  測試字串
tcsh會立即更新樣式,但不會儲存樣式

一般參數說明:
%B  加粗字體
%M 主機名稱
%n  使用者名稱
%t   時間 (12 hr format)
%T  時間 (24hr  format)
%p  精確時間 (12 hr format with seconds)
%P  精確時間 (24 hr format with seconds)
%j  工作數量

詳細參數需詳閱:
http://www.tcsh.org/tcsh.html/Special_shell_variables.html#prompt

顏色參數說明:
使用格式為%{^[[數字m%},如:%{^[[33m%}會顯示黃色文字

0   = default colour
1   = bold
4   = underlined
5   = flashing text
7   = reverse field
31  = red
32  = green
33  = yellow
34  = blue
35  = purple
36  = cyan
37  = grey
40  = black background
41  = red background
42  = green background
43  = yellow background
44  = blue background
45  = purple background
46  = cyan background
47  = grey background

2016年5月1日 星期日

mergesort實踐

#include <stdio.h>
#include <stdlib.h>

void mergesort(int arr[],int n,int m)
{
    if(n>=m)
    {
        return;
    }
    mergesort(arr,n,(n+m)/2);
    mergesort(arr,(n+m)/2+1,m);
    int mid=(n+m)/2+1,i,k,index;
    int reg[m-n+1];
    for(i=n,k=mid,index=0;i<=mid-1&&k<=m;)
    {
        reg[index++]=arr[i]<arr[k]? arr[i++]:arr[k++];
    }
    while(i<=mid-1)
    {
        reg[index++]=arr[i++];
    }
    while(k<=m)
    {
        reg[index++]=arr[k++];
    }
    for(i=n;i<=m;i++)
    {
        arr[i]=reg[i-n];
    }
    return;
}

int main()
{
    int i,k;
    int arr[10]={13,36,78,9,53,78,100,66,10,14};
    for(i=0;i<10;i++)
        printf("%d ",arr[i]);
    printf("\n");
    mergesort(arr,0,9);
    for(i=0;i<10;i++)
        printf("%d ",arr[i]);
    return 0;
}



2016年4月29日 星期五

bubblesort實踐

#include <stdio.h>
#include <stdlib.h>

#define swap(i,k) int _tp=(*i); (*i)=(*k); (*k)=_tp;

int bubblesort(int arr[],int n,int m)
{
    int i,k;
    for(i=m;i>=n;i--)
    {
        for(k=0;k<=i;k++)
        {
            if(arr[k]>arr[k+1])
            {
                swap(&arr[k],&arr[k+1]);
            }
        }
    }
    return 0;
}

int main()
{
    int i,k;
    int arr[10]={13,36,78,9,53,78,100,66,10,14};
    for(i=0;i<10;i++)
        printf("%d ",arr[i]);
    printf("\n");
    bubblesort(arr,0,9);
    for(i=0;i<10;i++)
        printf("%d ",arr[i]);
    return 0;
}

2015年2月11日 星期三