全国统一24小时服务资讯热线0571-8802321710年专业网络服务供应商

资讯中心

- 直击网站建设第一现场,掌握全球化的消息 -

当前位置 : 首页 > 新闻中心 > 建站知识 > 我们多少问题都复杂化了

我们多少问题都复杂化了

2012-04-07 分享 浏览次数:7534次

 

标签:网站建设杭州网站设计

人的思想是世界上无法研究明白的,有的人喜欢简单,有的人就喜欢复杂,所谓的想太多

每个人的想法都不一样的,世界大同了,那么只需要活一个人便好了,想开些,你提这个问
题本身就是复杂了。

        这段时间互联网上火热的流传着一个智力测试题。题目出现的形式有多种,但大多看起来是这个样子:如果是学龄前儿童,5-10分钟能解决这个问题,普通程序员要1个小时,受过更高教育的人…

 

 

8809=6

7111=0

2172=0

6666=4

1111=0

3213=0

7662=2

9313=1

0000=4

2222=0

3333=0

5555=0

8193=3

8096=5

7777=0

9999=4

7756=1

6855=3

9881=5

5531=0

2581=?

 

谜底揭示 …

 

 

 

 

 

 

 

 

 

 

 

 

       期实答案很复简单,答案跟每个数字里有多少个圈圈有关。在形状上,8有2个圈,所以记两次。0是一个大圈,记1次。所以2581=2。很有趣,不是吗?这是一种通过隐含的计算方式得出的另一种数值对应关系。

 

      而困扰着我的却是如何能以一种不基于数字形状的方法来找到这种数值对应关系。我如何能编程让计算机来解决这个问题?我认真思考了一下,因为我喜欢自 认为是一个计量经济学家,这道题看起来颇像一个可以通过一个OLS(ordinary least squares)表达式来解决的联立方程式。那么,如何能讲将这个问题和涉及到的数据转化成一个小小的OLS表达式呢?我需要将每行的数字队列转换成一个 描述数字出现频率的表格。这样,对于8809=6来说,我需要重构出来的数据应该类似于这样:

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

          在这种形式的公式中,9个数字分别代表着数字1-9在每串数据中出现的次数。我不知道如何得出这张频次表,于是,按照我的习惯,我把这个问题做了一个简洁的描述,张贴在StackOverflow.com上,如我愿的得到了一个极好的方案。一旦我建好了频次表,问题就变成了一个简单的关于10个独立变量的线性表达式。

 

我的整个运算脚本——如果你十分感兴趣的话——就是下面这些,你可以把它粘贴到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/
  5.  44a4dc9b304249e7ab3add86bc245b6be64d2cdd/problem.csv",
  6. ## munge the data to create a frequency table
  7. freqTable <- as.data.frame( t(apply(series[,1:4], 1, function(X) table(c(X, 0:9))-1)) )
  8.  destfile=temporaryFile, method="curl")
    • series <- read.csv(temporaryFile)
    • names(freqTable) freqTable$dep <- series[,5]
    •  four + five + six + seven + eight + nine, data=freqTable)
    • ## now a simple OLS regression with no intercept
    • myModel <- lm(dep ~ 0 + zero + one + two + three +
    • round(myModel$coefficients)
    • <- c("zero","one","two","three","four","five","six","seven","eight","nine")

最终的输出结果如下:

 
  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对应的值是1,而8对应的值是2。其它数字对应的都是0。而4得出的是NA,这是因为数字序列中没有出现4。

 

这个世界上永远有两种人,一种人总希望把问题简单化,一种人则总喜欢把简单的问题复杂化。

 

最新网站案例

洞悉市场趋势演变让传播回归社会

    免费获取网站建设与网络推广方案报价

    • 关于我们

      杭州帷拓科技有限公司,是一家新型的全案网络开发公司,作为以互联网高端网站建设、APP开发、小程序开发为核心的专业网络技术服务供应商,帷拓科技致力于全面分析市场环境、衡量与预测市场需求、整合区别于行业竞争对手的绝对优势,结合品牌理念深度挖掘项目优势和产品价值,提升客户品牌认知、认可度。

    • 我们的客户

      帷拓科技历经十年沉淀,与国内外上千家客户达成合作关系,其中稳定合作的公司有:浙江华为、浙江移动、浙江5G产业联盟、浙江省社科院、绿城足球俱乐部、娃哈哈双语学校、健康中国杭州峰会、科雷机电等,帷拓科技始终坚持“帷有专业,才能拓展无限”的服务理念,坚持“认真坚持细节”的优质服务理念,不断完善自身,成就企业,最终实现共赢。

    • 我们的业务

      帷拓科技主营业务范围包含互联网高端网站建设、APP开发、小程序开发、商城网站建设、公众号运营以及数字营销等,涵盖了服务、房产、数码、服装、物流贸易等行业,根据品牌现状,为每个客户量身定制项目整体服务方案,以敏锐的市场洞察力、创新的市场策划能力,全面把握市场变化,为客户实现从企业到消费者的价值转换。

    Designerpart Designagentur
    Designerpart Designagentur
    Designerpart Designagentur
    Designerpart Designagentur
    Designerpart Designagentur
    Designerpart Designagentur