2012年12月18日 星期二

新程式語言構想

開發一個新的程式語言,對我來說,是一項很難的任務。
但我有一個構想,
是程式語言中,就有簡單語法支援,所有A() call B()都做某事。
例如,新的語法用control來達成,A() call B() ,而B()再call C()的話,
所有variable t都要+1,寫成:
control(A->B->C:t+1)
{
    ....
    A()
    Test()
    ....
}
就是對於{}內,所有A() call B() ,而B()再call C()的話,
所有variable t都會+1。
目前現有的程式語言,
例如,C/C++,Java,Python,Lisp,Prolog…
要達成上面的目標,似乎都可以,但是都沒有新語言的這種簡單寫法。
希望哪一天,有人開發新語言,達成我要的目標。

Python 使用if的超新手錯誤

最近Python遇到一個錯誤,
但是這個錯誤造成的error,實在不常發生,
就在想,是什麼造成錯誤,
原來錯在if state 的誤用,
當使用
if m:
時,
m在幾種狀態不會執行,一是None type,
第二種,我當時忽略的是,m=0,也不會執行。
第三種,是m=[]
其它也許還有…
如果只是要用在m有value時,
請用
if m != None:
代替 if m:

2012年11月10日 星期六

翻譯軟體構想

(滑鼠)隨指隨翻軟體,
當昇級browser或pdf reader時,有時就會不能翻譯裡面的文字內容了,
需要等到翻譯軟體再更新才能正常抓到文字翻譯。
如果隨指隨翻軟體,可以改成抓取螢幕截圖,
然後經由圖形辨識的方式,抓取裡面的文字,
再來翻譯文字內容。
那麼就可以達到無視介面,可隨指隨翻Game裡面的文字,
或者影片字幕的文字,
且除非作業系統改變螢幕截圖的方式,
對於抓取文字介面的部份,幾乎不用再改寫。
由於此構想有效能上的難度,不好自己寫,因此公佈出來。

2012年9月26日 星期三

SPOJ Problem 1436: Is it a tree – PT07Y

C++ code colored by C++2HTML
#include <cstdlib>
#include <iostream>
#include <list>
#include <stdio.h>
#include <string.h>

using namespace std;

list<int> al[10001];
int ii, jj, node[10001];

long long int nn, magic_tri=2;
bool no;


void tt(int start_node, int pri_node)
{
    node[start_node] = magic_tri;
    if(false == no)
    {
        list<int>::iterator it;
        for(it=al[start_node].begin() ; it != al[start_node].end(); it++ )
        {
            if(*it == start_node)continue;
            if(*it == pri_node)continue;
            if(node[*it] == magic_tri)
            {
                no = true;
                break;
            }
            else 
            {
                jj = *it;
                tt(jj, start_node);
            }
        }
    }
}


int main()
{
    int ee, n1, n2;
    
    while(cin>>nn>>ee)
    {
        for(ii=0;ii<nn;++ii)
        {
            al[ii].clear();
        }
        for(ii=0;ii<10001;ii++)node[ii] = 0;
        for(ii=0;ii<ee;ii++)
        {
            cin>>n1>>n2;
            if(n1 == n2)continue;
            al[n1].push_front(n2);
            al[n2].push_front(n1);
        }
        if(0 == ee)
        {
            cout<<"YES"<<endl;
        }
        else
        {
            no = false;
            tt(n1, 0);
            if(true == no)cout<<"NO"<<endl;
            else cout<<"YES"<<endl;
        }
    }
    //system("PAUSE");
    return 0;
}

2012年9月15日 星期六

Prime(Basic Method)

C++ code colored by C++2HTML
#include <cstdlib>
#include <iostream>

using namespace std;

int main()
{
    bool b;
    int i,j,end, ans[100] = {2};
    end = 1;
    for(i=3;;i+=2)
    {
        b = false;
        for(j=0;j<end;j++)
        {
            if(0 == i%ans[j])
            {
                b = true;
                break;
            }
        }
        if(false == b)
        {
            ans[end] = i;
            ++end;
        }
        if(100 == end)break;
    }
    for(j=0;j<end;j++)cout<<ans[j]<<endl;//print 100 prime numbers
    system("PAUSE");
    return 0;
}

2012年5月11日 星期五

遊戲構想:One Touch板 飛機特訓

前幾天看到同事拿手機在玩One Touch板的 俄羅斯方塊,
也就是掉下來的地方,用One Touch的方式,選擇掉落的位址。
使我想到一個遊戲構想,也就是One Touch板的 飛機特訓,
想法是,飛機特訓 改成 用One Touch的方式選擇電腦選出的逃生路徑,
但是 很快的想到, 逃生路徑要怎麼由電腦算出來?且夠快算出來?
我一時想不出來,所以將此構想發表在Blog上。

2012年1月28日 星期六

基金投資小心得

一、買單筆,不買定時定額。
定時定額,賺的沒比較多,賠的也沒比較少,不如買單筆。
二、買積極型基金,不買穩健型基金。
所謂穩健型基金,不一定是真的,只是賺的比較少,賠的沒少多少。
而PIMCO總回報算是真的穩健型基金,但是別人在賺超過10%時,
PIMCO總回報賺不超過3%…還是買積極型基金比較好賺。
三、不要想避險,亂買基金。
譬如想避險的話,一筆買拉丁美洲,一筆買東歐,如此通常會有一筆或二筆一起跌。
四、逢低買進,逢高賣出。
逢低加碼通常能賺錢,不要被壞消息,嚇的不敢加碼了。

Codewars: The Baum-Sweet sequence

這題列在7 kyu,我覺得有點難度,應該有6 kyu的程度了。 這題有數學題的感覺,我因為害怕TLE,加上我有感冒, 因此是直接問ChatGPT 4o怎麼解決, 沒想到一開始,ChatGPT是提供TLE的方法, 我再問ChatGPT要如何加快, 才給我夠快的方法, 看了ChatG...