自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

簡單的問題復(fù)雜著解決

開發(fā) 開發(fā)工具
這段時間互聯(lián)網(wǎng)上火熱的流傳著一個智力測試題。題目出現(xiàn)的形式有多種,但大多看起來是下文的樣子。但是解決方法確讓你出乎意料。

這段時間互聯(lián)網(wǎng)上火熱的流傳著一個智力測試題。題目出現(xiàn)的形式有多種,但大多看起來是這個樣子:

  1. 如果是學(xué)齡前兒童,5-10分鐘能解決這個問題,普通程序員要1個小時,受過更高教育的人 … :)  
  2.  
  3. 8809=6 
  4.  
  5. 7111=0 
  6.  
  7. 2172=0 
  8.  
  9. 6666=4 
  10.  
  11. 1111=0 
  12.  
  13. 3213=0 
  14.  
  15. 7662=2  
  16.  
  17. 9313=1  
  18.  
  19. 0000=4 
  20.  
  21. 2222=0 
  22.  
  23. 3333=0 
  24.  
  25. 5555=0 
  26.  
  27. 8193=3  
  28.  
  29. 8096=5 
  30.  
  31. 7777=0 
  32.  
  33. 9999=4 
  34.  
  35. 7756=1 
  36.  
  37. 6855=3 
  38.  
  39. 9881=5 
  40.  
  41. 5531=0 
  42.  
  43. 2581=? 

謎底揭示 …

.

.

.

.

.

.

.

.

.

.

答案跟每個數(shù)字里有多少個圈圈有關(guān)。在形狀上,8有2個圈,所以記兩次。0是一個大圈,記1次。所以2581=2。很有趣,不是嗎?這是一種通過隱含的計算方式得出的另一種數(shù)值對應(yīng)關(guān)系。

而困擾著我的卻是如何能以一種不基于數(shù)字形狀的方法來找到這種數(shù)值對應(yīng)關(guān)系。我如何能編程讓計算機(jī)來解決這個問題?我認(rèn)真思考了一下,因為我喜歡自認(rèn)為是一個計量經(jīng)濟(jì)學(xué)家,這道題看起來頗像一個可以通過一個OLS(ordinary least squares)表達(dá)式來解決的聯(lián)立方程式。那么,如何能講將這個問題和涉及到的數(shù)據(jù)轉(zhuǎn)化成一個小小的OLS表達(dá)式呢?我需要將每行的數(shù)字隊列轉(zhuǎn)換成一個描述數(shù)字出現(xiàn)頻率的表格。這樣,對于8809=6來說,我需要重構(gòu)出來的數(shù)據(jù)應(yīng)該類似于這樣:

1,0,0,0,0,0,0,0,2,1 = 6

在這種形式的公式中,10個數(shù)字分別代表著數(shù)字0-9在每串?dāng)?shù)據(jù)中出現(xiàn)的次數(shù)。我不知道如何得出這張頻次表,于是,按照我的習(xí)慣,我把這個問題做了一個簡潔的描述,張貼在StackOverflow.com上,如我愿的得到了一個極好的方案。一旦我建好了頻次表,問題就變成了一個簡單的關(guān)于10個獨立變量的線性表達(dá)式。

我的整個運算腳本——如果你十分感興趣的話——就是下面這些,你可以把它粘貼到R語言解釋器里運行。

  1. ## read in the training data  
  2. ## more lines than it should be because of the https requirement in Github  
  3. temporaryFile <- tempfile()  
  4. download.file("https://raw.github.com/gist/2061284/44a4dc9b304249e7ab3add86bc245b6be64d2cdd/problem.csv",destfile=temporaryFile, method="curl")  
  5.  
  6. series <- read.csv(temporaryFile)  
  7.  
  8. ## munge the data to create a frequency table  
  9. freqTable <- as.data.frame( t(apply(series[,1:4], 1, function(X) table(c(X, 0:9))-1)) )  
  10.  
  11. names(freqTable) <- c("zero","one","two","three","four","five","six","seven","eight","nine")  
  12.  
  13. freqTable$dep <- series[,5]  
  14.  
  15. ## now a simple OLS regression with no intercept  
  16. myModel <- lm(dep ~ 0 + zero + one + two + three + four + five + six + seven + eight + nine, data=freqTable)  
  17.  
  18. round(myModel$coefficients) 

Created by Pretty R at inside-R.org

最終的輸出結(jié)果如下:

  1. > round(myModel$coefficients)  
  2. zero   one   two three  four  five   six seven eight  nine  
  3.  
  4.   1     0     0     0    NA     0     1     0     2     1 

你可以看到,0,6和9對應(yīng)的值是1,而8對應(yīng)的值是2。其它數(shù)字對應(yīng)的都是0。而4得出的是NA,這是因為數(shù)字序列中沒有出現(xiàn)4。

哈哈。我也跟學(xué)齡前兒童一樣聰明了。而且我還用程序做了驗證。

英文原文:Solving easy problems the hard way

原文來自:http://www.aqee.net/solving-easy-problems-the-hard-way/

【編輯推薦】

  1. 致Play Framework開發(fā)者們的一封信
  2. 為什么我不再做.NET開發(fā)
  3. 8個最棒的.NET開發(fā)相關(guān)工具
  4. 當(dāng).NET愛上Java的時候
  5. 給用戶和開發(fā)者***的.Net框架部署方案
責(zé)任編輯:林師授 來源: 外刊IT評論
相關(guān)推薦

2009-03-18 10:01:15

OracleIASNoClassDefF

2022-12-12 09:46:49

Kubernetes容器

2015-04-16 15:06:34

2024-06-11 07:54:53

2023-06-28 06:33:37

2024-11-04 13:17:12

2011-10-13 10:59:44

ADSL貓遠(yuǎn)程控制網(wǎng)絡(luò)維護(hù)

2009-09-15 17:45:34

Linq多條件

2010-04-28 18:01:15

Unix系統(tǒng)

2022-09-05 17:26:27

技術(shù)

2020-11-11 07:09:05

隔離直播系統(tǒng)

2014-04-18 09:30:49

基于網(wǎng)絡(luò)的APMAPM應(yīng)用管理

2022-04-18 09:00:00

數(shù)據(jù)庫向量機(jī)器學(xué)習(xí)

2010-05-06 17:24:05

Unix命令

2024-09-23 10:00:00

代碼Python

2022-12-27 08:43:18

系統(tǒng)思維設(shè)計思維創(chuàng)新

2023-01-04 10:24:42

2009-12-10 16:56:39

Ruby on RaiDHH

2010-12-08 11:33:21

面試
點贊
收藏

51CTO技術(shù)棧公眾號