看到各位对“笨办法系列”的东西还比较感兴趣,我也很乐意继续写下去。今天的示例将会用到数据框(data.frame)这种数据类型,并学习如何组合计算两个向量,以及如何排序。我们将用所学的东西来解决Project Euler的第四个问题,就是找出一个集合中最大的回文数。回文数是指一个像1534351这样“对称”的数,如果将这个数的数字按相反的顺序重新排列后,所得到的数和原来的数一样。开始啦!

# 预备练习

x <- y <- 1:9data <- expand.grid(x=x,y=y)print(data)z <- data$x * data$y# 一个九九乘法表z <- matrix(z,ncol=9)

set.seed(1)x <- round(runif(10),2)print(x)order(x)x[order(x)[1]]which.min(x)x[which.min(x)]x[order(x)] y <- 1:10data <- data.frame(x,y)class(data)head(data)data[1,]data[,1]data$xdata[order(data$x),]

# Project Euler 4# 在两个三位数字的乘积中,找出最大的回文数# 先建立一个将数字顺序进行反转的函数reverse <- function(n) {    reversed <- 0while (n > 0) {        reversed <- 10 * reversed + n %% 10        n <- n%/%10}return(reversed)}

# 从大到小搜索回文数
x <- y <- 999:100data <- expand.grid(x=x,y=y)data$prod <- data$x * data$ydata <- data[order(data$prod,decreasing=T),]head(data)
value <- data$prod for (i in 1:length(value)) {    isequal <- (value[i] == reverse(value[i]))    if (isequal) {        print(data[i,])        break    }}

得到的结果是906609,本例是先将乘积排序后再判断是否回文数,找到的第一个就是答案,所以速度会快一点。如果不用expand.grid函数的话,可以利用嵌套for来组合计算。另外还有一种作法是利用R本身的rev函数,先将数字转为字符,再切开成一串向量,用rev反转后判断。

from 数据科学与R语言 http://xccds1977.blogspot.com/

转载于:https://www.cnblogs.com/vivizhyy/archive/2012/09/11/2679981.html

笨办法学R编程(4)相关推荐

  1. 笨办法学R编程(1)

    在倚天屠龙记中,有一人唤作火工头陀.此人练功不靠心法,只靠模仿他人招式,由外而内,自成一家.练习编程也有如此的法门,不看文字描述,只观察和模仿别人的代码.这样也可以由外而内学会编程.<笨办法学p ...

  2. 笨办法学R编程(2)

    本例将介绍R语言中的while循环和if条件.最终用它来解决Project Euler的第二个问题.除了练习之外你还需要了解一些斐波纳契数列的知识.废话不多说了,打开R控制台,跟着输入下面的代码,自行 ...

  3. 计算机编程书籍-笨办法学Python 3:基础篇+进阶篇

    编辑推荐: 适读人群 :本书适合所有已经开始使用Python的技术人员,包括初级开发人员和已经升级到Python 3.6版本以上的经验丰富的Python程序员. "笨办法学"系列, ...

  4. [IT学习]Learn Python the Hard Way (Using Python 3)笨办法学Python3版本

    黑客余弦先生在知道创宇的知道创宇研发技能表v3.1中提到了入门Python的一本好书<Learn Python the Hard Way(英文版链接)>.其中的代码全部是2.7版本. 如果 ...

  5. python教程第四版pdf下载-笨办法学python第四版

    笨办法学python第四版是由Zed Shaw所编写的一本书.如果你还是Python新手,那么这是一本非常不错的入门书籍.书本里以习题方式,引导读者慢慢学会了编程. 目录: 习题 0: 准备工作 习题 ...

  6. python教程第四版pdf下载-笨办法学python第四版 电子书(pdf格式)

    笨办法学python第四版是由Zed Shaw所编写的一本书.如果你还是Python新手,那么这是一本非常不错的入门书籍.书本里以习题方式,引导读者慢慢学会了编程. 目录: 习题 0: 准备工作 习题 ...

  7. python教程第四版pdf下载-笨办法学python 第四版 中文pdf高清版

    笨办法学 Python是Zed Shaw 编写的一本Python入门书籍.适合对计算机了解不多,没有学过编程,但对编程感兴趣的朋友学习使用.这本书以习题的方式引导读者一步一步学习编 程,从简单的打印一 ...

  8. 笨办法学Python——学习笔记1

        最近想学gtk,但是gtk在window上编译和运行挺慢的,于是搜索了一下发现了pygtk.在前几天 把环境都配好了,现在想同时学gtk和pygtk,但Python没学过,找到了<笨办法 ...

  9. 笨办法学python3_月底送书!入门Python都在学的“笨办法”,出进阶篇了!

    你们知道吗?每10个将Python作为自己的入门语言的程序员里,就有8个是读着<"笨办法"学Python>的书成长的!这位拥有近20年的编程和写作经验的IT书籍作家-- ...

  10. 笨办法学 Linux 引言

    引言 原文:Introduction 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 深入兔子洞吧,这就是 Linux: https://bellard.org/jslinux/ ...

最新文章

  1. 69张图看懂Elon Musk的脑机接口芯片项目
  2. 《软件测试实践--测试Web MSN》 之我的学习笔记(一)
  3. python中__str__与__repr__
  4. mysql存储过程写法—动态参数运用
  5. SAP and ABAP Memory总结
  6. 第十章练习题----2
  7. ip层和4层的接口实现分析
  8. python3 numpy安装 linux_Linux 下安装 numpy 和 scipy
  9. 新浪微博html5模板,个人主题建站首选微博秀模板,仿新浪微博官网
  10. 芯鼎盛LED恒流驱动芯片TX6128设计的DC-DC开关电源降压恒流DEMO说明
  11. 无法直接复制文件到ubuntu虚拟机解决
  12. —— GPS测量原理及应用复习-4 ——
  13. 智能家居监控移动手机组态现实生活中的应用
  14. Halcon XLD 算子集合
  15. PaaS服务从heroku迁移到Fly.io小计
  16. 前端开发毕业设计如何选题?怎么做?
  17. 虚拟机和linux有啥关系,linux有什么虚拟机
  18. 利用T0定时器定时 100ms,每当定时时间到就使 P1.7 求反
  19. PCB信号完整性及EMC整改措施
  20. 利用SDL绘制点阵字

热门文章

  1. Java开发笔记(一百四十八)通过JDBC查询数据记录
  2. 深度梯度压缩:减小分布式训练的通信带宽
  3. Webpack笔记(三)——一款破产版脚手架的开发
  4. Java项目导出为jar包+导出第三方jar包+使用命令行调用+传参
  5. Xdebug的优点!php代码开发
  6. 2016021902 - linux解压缩命令
  7. 修改本地数据库root权限密码
  8. 把触发器说透(转载)
  9. django配置文件
  10. disruptor:CAS实现高效(伪)无锁阻塞队列实践