討論區快速選單
知識庫快速選單
程式設計俱樂部Facebook粉絲團 政府補助!學嵌入式+物聯網 傑米的攝影旅遊筆記
[ 回上頁 ] [ 討論區發言規則 ]
n 取 n 逆時鐘旋轉排列法
更改我的閱讀文章字型大小
作者 : cxxlman(CxxlMan) C++優秀好手貼文超過1000則
[ 貼文 1012 | 人氣 3227 | 評價 1260 | 評價/貼文 1.25 | 送出評價 27 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2018/3/14 下午 01:26:07
#include <functional>  // std::function
#include <memory>    // std::shared_ptr
#include <vector>
#include <iostream>

using namespace std;

// n 取 n 做排列
// 採用逆時旋轉排列法
class Permutation_nPn
{
 // 回報結果
 function<void(const shared_ptr<vector<unsigned char> > &)> m_Report;

 // 放置要排的數字
 shared_ptr <vector<unsigned char> > m_Digital_Array;

 void v(size_t n)
 {
  if (n == 0)
   m_Report(m_Digital_Array);
  else
  {
   size_t i = n + 1;
   while (i--)
   {
    v(n - 1);
    unsigned char tmp = m_Digital_Array->at(n);
    for (size_t j = n; j > 0; --j)
     m_Digital_Array->at(j) = m_Digital_Array->at(j - 1);
    m_Digital_Array->at(0) = tmp;
   }
  }
 }

public:
 Permutation_nPn(){}

 Permutation_nPn(function<void(const shared_ptr<vector<unsigned char> > &)> &Receive)
  :m_Report(Receive)
 {}

 void nPn(size_t n)
 {
  m_Digital_Array = shared_ptr<vector<unsigned char> >(new vector<unsigned char>(n));
  size_t i = n;
  while (i)
  {
   m_Digital_Array->at(i - 1) = i - 1;
   --i;
  }

  v(n - 1);
 }
};

int N = 1;
void Show(const shared_ptr<vector<unsigned char> > &Digital_Array)
{
 cout << N << ":\t";
 
 for (size_t i = Digital_Array->size(); i > 0; --i)
  cout << (int)Digital_Array->at(i - 1) << ' ';
 cout << endl;
 ++N;
}

int main()
{
 function<void(const shared_ptr<vector<unsigned char> > &)> Reprot(Show);
 Permutation_nPn P(Reprot); 

 cout << "4! 排列:" << endl;
 N = 1;
 P.nPn(4);

 return 0;
}

執行結果:
4! 排列:
1:   3 2 1 0
2:   3 2 0 1
3:   3 1 0 2
4:   3 1 2 0
5:   3 0 2 1
6:   3 0 1 2
7:   2 1 0 3
8:   2 1 3 0
9:   2 0 3 1
10:   2 0 1 3
11:   2 3 1 0
12:   2 3 0 1
13:   1 0 3 2
14:   1 0 2 3
15:   1 3 2 0
16:   1 3 0 2
17:   1 2 0 3
18:   1 2 3 0
19:   0 3 2 1
20:   0 3 1 2
21:   0 2 1 3
22:   0 2 3 1
23:   0 1 3 2
24:   0 1 2 3
請按任意鍵繼續 . . .
作者 : gmailjoey(建中) 貼文超過200則
[ 貼文 206 | 人氣 0 | 評價 190 | 評價/貼文 0.92 | 送出評價 13 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2018/3/28 上午 01:59:18
//恭喜你設計出新的排列組合程式,
//我幫你做了一個有define變數的版本,
//n-->A , r-->B ,
//並且計算出Cnr的組合數字,取名為N2。


// 請到下列網址拷貝貼上程式碼:
// test002.cpp: 定義主控台應用程式的進入點。
// 網址: https://joeymovieyoutube.blogspot.com/2018/03/re-n-n.html
作者 : cxxlman(CxxlMan) C++優秀好手貼文超過1000則
[ 貼文 1012 | 人氣 3227 | 評價 1260 | 評價/貼文 1.25 | 送出評價 27 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2018/3/28 上午 11:44:36
這種排列法的特點是有它的順序性,但要處理旋轉,所以不是最快的,以下這個應該是最快的

http://hugedream.blogspot.tw/2009/07/permutation-to-iterate-is-human-to.html
作者 : gmailjoey(建中) 貼文超過200則
[ 貼文 206 | 人氣 0 | 評價 190 | 評價/貼文 0.92 | 送出評價 13 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2018/3/28 下午 01:01:49
//2018/3/28 網誌已經更新,加上了例外處理,
//定義了一個新的例外叫做Logic_Error。
//我已經加上我的簽名,
//歡迎各位網友留言給我,
//作為改進程式的參考,謝謝。
作者 : gmailjoey(建中) 貼文超過200則
[ 貼文 206 | 人氣 0 | 評價 190 | 評價/貼文 0.92 | 送出評價 13 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2018/4/1 上午 07:37:48
// 2018/4/1 網誌已經更新,修正了cntN()的計算問題,
// 設定組合總數為N2,排列所有組合的數量為N3,
// 預估N = N3 + 1。
// 接下來我會準備一個計算水果盤排列的程式給大家作為參考。

// 水果盤排列程式網址:請自行拷貝貼上網址觀看!
// https://joeymovieyoutube.blogspot.com/2018/03/re-n-n_31.html
作者 : cxxlman(CxxlMan) C++優秀好手貼文超過1000則
[ 貼文 1012 | 人氣 3227 | 評價 1260 | 評價/貼文 1.25 | 送出評價 27 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2018/4/2 下午 03:58:30

以下幾個地方要修改一下

這個不須要
> Permutation_nPn(){}


這個改一下
> Permutation_nPn(function<void(const shared_ptr<vector<unsigned char> > &)> &Receive)
 Permutation_nPn(const function<void(const shared_ptr<vector<unsigned char> > &)> &Receive)



這個不須要
> function<void(const shared_ptr<vector<unsigned char> > &)> Reprot(Show);



這個改一下
> Permutation_nPn P(Reprot); 
 Permutation_nPn P(Show); 

作者 : gmailjoey(建中) 貼文超過200則
[ 貼文 206 | 人氣 0 | 評價 190 | 評價/貼文 0.92 | 送出評價 13 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2018/4/3 上午 07:29:18
修改好了,謝謝cxxlman大大!
n 取 n 逆時鐘旋轉排列法:
水果盤排列程式, 網址:

網址: http://joeymovieyoutube.blogspot.tw/2018/03/re-n-n_31.html
作者 : cxxlman(CxxlMan) C++優秀好手貼文超過1000則
[ 貼文 1012 | 人氣 3227 | 評價 1260 | 評價/貼文 1.25 | 送出評價 27 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2018/4/4 下午 09:48:38
必較快但會比較亂的排列法

#include <functional>  // std::function
#include <memory>    // std::shared_ptr
#include <vector>
#include <iostream>

using namespace std;

// n 取 r 做排列
// 採用逆時旋轉排列法
// 必須 n >= r
class Permutation_nPr
{
 // 回報結果
 function<void(const shared_ptr<vector<unsigned char> > &, size_t)> m_Report;
 // 放置要排列的數字
 shared_ptr <vector<unsigned char> > m_Digital_Array;
 // 要做排列的數目值
 size_t m_r;

 void v(size_t n, size_t r)
 {
  if (r == 0)
   m_Report(m_Digital_Array, m_r);
  else
   v(n - 1, r - 1);

  for (size_t j = n; j > 0; --j)
  {
   unsigned char tmp = m_Digital_Array->at(n);
   m_Digital_Array->at(n) = m_Digital_Array->at(j-1);
   m_Digital_Array->at(j - 1) = tmp;

   if (r == 0)
    m_Report(m_Digital_Array, m_r);
   else
    v(n - 1, r - 1);

   tmp = m_Digital_Array->at(n);
   m_Digital_Array->at(n) = m_Digital_Array->at(j-1);
   m_Digital_Array->at(j - 1) = tmp;
  }
 }

public:
 Permutation_nPr(
   const function<void(const shared_ptr<vector<unsigned char> > &, size_t)>
   &Receive
 ):m_Report(Receive)
 {}

 void nPr(size_t n, size_t r)
 {
  m_r = r;
  m_Digital_Array =
    shared_ptr<vector<unsigned char> >(new vector<unsigned char>(n));
  size_t i = n;
  while (i--)
  {
   m_Digital_Array->at(i) = i;
  }
  v(n - 1, r - 1);
 }
};

int N = 1;
void Show(const shared_ptr<vector<unsigned char> > &Digital_Array, size_t r)
{
 cout << N << ":\t";
 for (size_t i = Digital_Array->size() - 1; r > 0; --i, --r)
  cout << (int)Digital_Array->at(i) << ' ';
 cout << endl;
 ++N;
}
int main()
{
 Permutation_nPr P(Show);
 cout << "4P3 排列:" << endl;
 N = 1;
 P.nPr(4, 3);

 cout << "5P3 排列:" << endl;
 N = 1;
 P.nPr(5, 3);

 return 0;
}

作者 : cxxlman(CxxlMan) C++優秀好手貼文超過1000則
[ 貼文 1012 | 人氣 3227 | 評價 1260 | 評價/貼文 1.25 | 送出評價 27 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2018/4/4 下午 09:50:19
執行結果

4P3 排列:
1: 3 2 1
2: 3 2 0
3: 3 1 2
4: 3 1 0
5: 3 0 1
6: 3 0 2
7: 2 3 1
8: 2 3 0
9: 2 1 3
10: 2 1 0
11: 2 0 1
12: 2 0 3
13: 1 2 3
14: 1 2 0
15: 1 3 2
16: 1 3 0
17: 1 0 3
18: 1 0 2
19: 0 2 1
20: 0 2 3
21: 0 1 2
22: 0 1 3
23: 0 3 1
24: 0 3 2
5P3 排列:
1: 4 3 2
2: 4 3 1
3: 4 3 0
4: 4 2 3
5: 4 2 1
6: 4 2 0
7: 4 1 2
8: 4 1 3
9: 4 1 0
10: 4 0 2
11: 4 0 1
12: 4 0 3
13: 3 4 2
14: 3 4 1
15: 3 4 0
16: 3 2 4
17: 3 2 1
18: 3 2 0
19: 3 1 2
20: 3 1 4
21: 3 1 0
22: 3 0 2
23: 3 0 1
24: 3 0 4
25: 2 3 4
26: 2 3 1
27: 2 3 0
28: 2 4 3
29: 2 4 1
30: 2 4 0
31: 2 1 4
32: 2 1 3
33: 2 1 0
34: 2 0 4
35: 2 0 1
36: 2 0 3
37: 1 3 2
38: 1 3 4
39: 1 3 0
40: 1 2 3
41: 1 2 4
42: 1 2 0
43: 1 4 2
44: 1 4 3
45: 1 4 0
46: 1 0 2
47: 1 0 4
48: 1 0 3
49: 0 3 2
50: 0 3 1
51: 0 3 4
52: 0 2 3
53: 0 2 1
54: 0 2 4
55: 0 1 2
56: 0 1 3
57: 0 1 4
58: 0 4 2
59: 0 4 1
60: 0 4 3

Process returned 0 (0x0) execution time : 0.156 s
Press any key to continue.
作者 : gmailjoey(建中) 貼文超過200則
[ 貼文 206 | 人氣 0 | 評價 190 | 評價/貼文 0.92 | 送出評價 13 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2018/4/19 下午 10:28:07
2018/4/19
網誌已經更新,加上了我個人的簽名。
這次修改的地方是tmp002,因為C++並非高階語言,
所以如果要他直接算出下面的算式:
tmp002 = cnt(tmpA) / cnt(tmpB)*cnt(tmpA - tmpB);//會造成錯誤。
因此加入了tmpC, tmpD, tmpE等暫存變數,
並且加上了例外處理。
A是Cnr當中的n, B是Cnr當中的r,
N2是所有組合的總數量,N3是所有組合排列以後的排列總數量,
至於原來的N,
則是因為進行了先行遞增的++N跑迴圈,提早加了一個1進去,
所以最後結果會是N=N3+1。
所謂的N就是 Number的意思。
歡迎各位網友踴躍提供改進的意見給我,謝謝。


程式碼網址:
https://joeymovieyoutube.blogspot.tw/2018/03/re-n-n.html
作者 : gmailjoey(建中) 貼文超過200則
[ 貼文 206 | 人氣 0 | 評價 190 | 評價/貼文 0.92 | 送出評價 13 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2018/4/20 上午 12:47:59
明天我的VC++2017試用版就到期了,
程式就改寫到這裡,
下個月要是有空閒時間,
我再考慮安裝VC++2018。

我的範例使用了定義數字A與B,
這在C語言中還算普通。
如果你在JAVA裡面寫A與B,
當場就犯了超短命名的問題!
JAVA文法說,超短命名是一種不當的命名,
設定超短命名的話,
無法從中獲得有用的資訊,
更容易忘東忘西。
未來還是要用學術英文來改寫這樣的超短命名。

另一個問題是啟用了try-catch區塊,
使得程式碼變得難以閱讀。
但是為了使組合數字的計算進入合理範圍,
還是有必要加入try-catch區塊,
讓數字不至於跳出負數。

這個程式的長遞迴與轉型,
實際上有它的風險。
當改寫人員想加入陣列的時候將會發現困難。
但是如果考慮到計算排列組合的各種情況,
未來必然要加入好幾十個甚至好幾百個tmp變數,
用來計算各種排列組合的狀況,
在複雜的流程當中要每次都轉型成功,
我認為是有風險的。我預測不同的tmp變數,
將會使轉型變成不同的型別,
增加程式出錯的機會。
這時候就要考慮開發更多數量的短程式,
減少轉型錯誤。
這可是個把一大堆程式prototype交給專業機構的好機會!

最後寫寫我的感想。
因為每個變數轉型都可以變成BUG,
所以程式設計不應該老是想要騰龍換鳥,
變成幻術,然後等著失傳。
程式設計要像跑車換輪胎,要像家常便飯,
成為一種日常生活的筆記和心得,
我認為是最好的。
準備多一點的程式版本,
慢慢改寫成不同的應用程式,
年紀大的時候回來看這些程式碼,
會覺得自己曾經使用過比爾蓋茲的編譯器,
曾經經歷過眼明手快的日子,
是相當美好的回憶。
各位網友有空的時候,也來寫寫程式看看吧。

程式碼網址:
https://joeymovieyoutube.blogspot.tw/2018/03/re-n-n.html
作者 : ice_emissary(燃燒的大地) 貼文超過200則
[ 貼文 357 | 人氣 0 | 評價 1730 | 評價/貼文 4.85 | 送出評價 16 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2018/4/20 上午 09:17:30
>明天我的VC++2017試用版就到期了,
>程式就改寫到這裡,

要不要試試看 GCC?
免費、而且比 VC 還強大,永遠不會過期!
http://tdm-gcc.tdragon.net/

>我的範例使用了定義數字A與B,
>這在C語言中還算普通。
>如果你在JAVA裡面寫A與B,
>當場就犯了超短命名的問題!
>JAVA文法說,...

首先要搞清楚「文法」和「建議」的區別,說到儘量讓命名清晰(我沒說一定要長喔),我是絕對同意。
但說命名「一定」要長,否則「不能編譯通過」,這就不對了!
我印象中 Java 的「語法上的」命名規則並沒有這樣強硬啊!不然大家常用的變數「i」怎麼辦?

>另一個問題是啟用了try-catch區塊,
>使得程式碼變得難以閱讀。

基本上 try-catch 的設計就是為了讓程式好寫易讀,尤其新的程式語言幾乎都把它視為標配。
如果你用了之後反而讓程式難讀懂……
那這是誰的問題應該很明顯了吧!

>最後寫寫我的感想。
>因為每個變數轉型都可以變成BUG,
>所以程式設計不應該老是想要騰龍換鳥,
>變成幻術,然後等著失傳。
>程式設計要像跑車換輪胎,要像家常便飯,
>成為一種日常生活的筆記和心得,

不錯不錯,開始有些心得了,
希望你有天真能脫胎換骨!

>我認為是最好的。
>準備多一點的程式版本,
>慢慢改寫成不同的應用程式,

這就……
你不覺得自己寫一大堆的應用程式很累也不可能寫得完嗎?
何不幻個想法,把東西寫成程式庫,讓其他應用程式不用再寫一次同樣的功能,
讓全世界的應用程式都可以直接呼叫你的程式庫來讓你的程式工作就好。
這樣,你不用寫所有的應用程式,只要寫一份程式庫,讓其他人去寫各自的應用程式,多好!

>年紀大的時候回來看這些程式碼,
>會覺得自己曾經使用過比爾蓋茲的編譯器,
>曾經經歷過眼明手快的日子,

我個人的經驗,最不想回去的就是那些使用比爾智障編譯器的日子!
我現在又知道一件事,原來使用比爾編譯器還必須要眼明手快才能夠工作!
我現在可能不夠眼明手快了,或者累了,所以我換了不太需要眼明手快、也不太需要腦筋急轉彎就能夠正常使用的編譯器:GCC。
作者 : kagaya(kagaya) VC++優秀好手C++優秀好手貼文超過1000則人氣指數超過30000點
[ 貼文 1599 | 人氣 38709 | 評價 4590 | 評價/貼文 2.87 | 送出評價 115 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2018/4/20 上午 10:16:43
>我個人的經驗,最不想回去的就是那些使用比爾智障編譯器的日子!

這句讓我笑了出來
不過說起來 那編譯器應該不是比爾寫的
而且他不在M$也很久了 要冠上他名字他大概也無言
就連最早期的DOS系統也不是他寫的 而是跟別人買的
他大概只會寫寫最古早的BASIC吧
不過他很會做生意 要賺大錢就要會做生意 要靠寫程式還是算了吧
作者 : ice_emissary(燃燒的大地) 貼文超過200則
[ 貼文 357 | 人氣 0 | 評價 1730 | 評價/貼文 4.85 | 送出評價 16 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2018/4/20 上午 10:28:17
>這句讓我笑了出來
>不過說起來 那編譯器應該不是比爾寫的
>而且他不在M$也很久了 要冠上他名字他大概也無言
>就連最早期的DOS系統也不是他寫的 而是跟別人買的
>他大概只會寫寫最古早的BASIC吧
>不過他很會做生意 要賺大錢就要會做生意 要靠寫程式還是算了吧

你說的沒錯,我們都知道比爾大大不是真正去弄這些東西的人,
但這現在已經變成一種幽默的形容詞了!
誰叫比爾蓋茲是微軟的代表人物呢?說到微軟,一般人會立刻想到哪個人物?
像我以前的老師常就會調侃比爾蓋茲,比如說:
Excel 為什麼會發生 XX 的事情?我怎麼知道?你要我打電話問比爾蓋茲嗎?
作者 : cxxlman(CxxlMan) C++優秀好手貼文超過1000則
[ 貼文 1012 | 人氣 3227 | 評價 1260 | 評價/貼文 1.25 | 送出評價 27 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2018/4/22 上午 02:02:58

>就連最早期的DOS系統也不是他寫的 而是跟別人買的
>他大概只會寫寫最古早的BASIC吧
>不過他很會做生意 要賺大錢就要會做生意 要靠寫程式還是算了吧

根據傳說,因為有個晚上比爾蓋茲把錢輸光了,正好有人問他要不要替一台機器寫個操作系統賺點外快, 於是 DOS 就此誕生了,要是那晚比爾蓋茲贏錢,可能就不會有 DOS, 也不會有微軟
作者 : turing(Alan)
[ 貼文 68 | 人氣 0 | 評價 300 | 評價/貼文 4.41 | 送出評價 1 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2018/4/22 下午 03:42:10
DOS並非Bill Gates寫出來的!是他花錢買源碼及版權回來的。

Bill Gates電腦比Steve Jobs好,僅此而已。
作者 : cxxlman(CxxlMan) C++優秀好手貼文超過1000則
[ 貼文 1012 | 人氣 3227 | 評價 1260 | 評價/貼文 1.25 | 送出評價 27 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2018/4/22 下午 05:51:00

>DOS並非Bill Gates寫出來的!是他花錢買源碼及版權回來的。
>
>Bill Gates電腦比Steve Jobs好,僅此而已。

比爾蓋茲輸錢這件事造就了比爾蓋茲是真是假,記得好像是在 discovery 頻道看到有此一說
作者 : kagaya(kagaya) VC++優秀好手C++優秀好手貼文超過1000則人氣指數超過30000點
[ 貼文 1599 | 人氣 38709 | 評價 4590 | 評價/貼文 2.87 | 送出評價 115 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2018/4/23 上午 10:10:23
關於DOS是買來的這件事
比爾自傳裡有寫 電影微軟英雄也有演 應該是不會錯的了
另外
微軟英雄的英文原名是 Pirates of Silicon Valley
中文翻得太爛了 我倒是覺得原名很傳神呀 哈哈
作者 : cxxlman(CxxlMan) C++優秀好手貼文超過1000則
[ 貼文 1012 | 人氣 3227 | 評價 1260 | 評價/貼文 1.25 | 送出評價 27 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2018/4/23 下午 06:08:43

>關於DOS是買來的這件事
>比爾自傳裡有寫 電影微軟英雄也有演 應該是不會錯的了
>另外
>微軟英雄的英文原名是 Pirates of Silicon Valley
>中文翻得太爛了 我倒是覺得原名很傳神呀 哈哈

微軟真的是撿到寶了,原作者不知道是不是很嘔,不過呢,寶刀要在英雄手中才能成為寶刀
作者 : turing(Alan)
[ 貼文 68 | 人氣 0 | 評價 300 | 評價/貼文 4.41 | 送出評價 1 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2018/6/6 下午 05:22:07
最早的時候,MS-DOS是掛名Microsoft,實際上是授權(licensed)回來的。原先是Seattle Computer Products的產品86-DOS。

IBM不知就,找Bill Gates來license MS-DOS,Bill Gates滿口答應了IBM,回頭馬上以把DOS完全買回來,再授權(license)給IBM。IBM糊婼k塗地叫Bill Gates發了財,發了好大的財!

Bill Gates好運氣?按記憶,是他母親穿針引線,叫IBM去找他。

Bill Gates的父母在美國相當有錢有地位,人脈亦廣,是羨慕不來的。

「電腦奇才」是學不來的!


這些故事在1990年代初,IBM在PC上犯了一連串的錯誤後,人們研究IBM錯誤時找出來的。

及後,MS Windows成功,亦是因為IBM犯了另一些錯誤所做成的。
 板主 : simula
 > C++ - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - C++ - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
C++
1 Raymond 13050 
2 青衫 4760 
3 simula 4690 
4 coco 4030 
5 白老鼠(Gary) 3670 
6 ozzy 2540 
7 Ben 2250 
8 Anderson 1960 
9 windblown 1650 
10 Kenny 1560 
C++
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2018 程式設計俱樂部 http://www.programmer-club.com.tw/
0.203125