专栏首页PPV课数据科学社区【学习】笨办法学R编程(二)

【学习】笨办法学R编程(二)

经历了前面两个小挑战,你应该对R有点理解了。我们继续推进,今天的问题有点点复杂,复杂的不是R,而是一个数学概念:质数和质因子。任何一个合数都可以被几个质数所分解,这个性质很重要,我们将用它来解决Project Euler的第三个问题。还是和之前一样的,你需要自己在R控制台中敲打下面这些命令,根据结果自行揣摩其用处。

# 预备练习,学习for循环、建立自定义函数和其它一些函数 for (n in 1:10) { print(sqrt(n)) } x <- c(‘hello’,'world’,'I’,'love’,'R’) for (n in x) { print(n) } x <- seq(from=1,to=10,by=1) print(x) x <- seq(from=1,to=10,by=2) print(x) x <- seq(from=1,to=2,length.out=10) print(x) round(x) x > 1.5 all(x>1.5) any(x>1.5) # 如何自定义一个求圆面积的函数 myfunc <- function(r) { area <- pi*r^2 return(area) } print(myfunc(4)) # 同时求四个不同半径圆的面积 r <- c(2,2,4,3) sapply(X=r,FUN=myfunc) # Project Euler 3 # 找到600851475143这个数的最大质因子 # 先建立一个函数以判断某个数是否为质数 findprime <- function(x) { if (x %in% c(2,3,5,7)) return(TRUE) if (x%%2 == 0 | x==1) return(FALSE) xsqrt <- round(sqrt(x)) xseq <- seq(from=3,to=xsqrt,by=2) if (all(x %% xseq !=0)) return(TRUE) else return(FALSE) } # 列出1到100的质数,看函数对不对 x = 1:100 x[sapply(x,findprime)] # 寻找最大的质因子 n <- 600851475143 for (i in seq(from=3, to=round(sqrt(n)), by=2)) { if (findprime(i) & n %% i == 0) { n <- n / i prime.factor <- i if (i >= n) break } } print(prime.factor) 最后的结果是6857。本例中除了使用for循环外,还见到了sapply函数,这是R语言中非常重要的一类向量化计算函数。求质数的方法可以参考这个文章,本例使用的是其中的境界4。实际上根据质因子的性质,本例不一定非要建立判断质数的函数,不过这个函数我们在后面会用到的。另外如果你想用其它软件找这个数字的质因子,也可以看看这里。

本文分享自微信公众号 - PPV课数据科学社区(ppvke123)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2014-05-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【V课堂】R基本操作函数脉络图

    如果你使用R做数据分析,你一边会感到无比的便捷,一边也会感到苦恼,便捷在于它丰富的功能和简单的代码,通常使用几行代码就能解决一个很复杂的事,这得益于他丰富的pa...

    小莹莹
  • 走近 Python (类比 JS)

    Python 是一门运用很广泛的语言,自动化脚本、爬虫,甚至在深度学习领域也都有 Python 的身影。作为一名前端开发者,也了解 ES6 中的很多特性借鉴自 ...

    小莹莹
  • 大数据让你知道,相见原来是故人

    ?   导读:面对广义大数据,我们如孩童一样,一遍又一遍地问着为什么?为什么人有生老病死?为什么有日月星辰?人类文明将向着什么方向发展?我的命运呢?来世可以与...

    小莹莹
  • 深度学习: 目标函数

    目标函数 (object function) = 损失函数 (loss function) = 代价函数 (cost function)

    JNingWei
  • 一文综述神经网络中常用的损失函数 | DL入门

    不同的损失函数可用于不同的目标。在这篇文章中,我将带你通过一些示例介绍一些非常常用的损失函数。这篇文章提到的一些参数细节都属于tensorflow或者keras...

    OpenCV学堂
  • 一文综述神经网络中常用的损失函数 | DL入门

    不同的损失函数可用于不同的目标。在这篇文章中,我将带你通过一些示例介绍一些非常常用的损失函数。这篇文章提到的一些参数细节都属于tensorflow或者keras...

    磐创AI
  • vld内存泄漏检查

    出现call stack(TID)后面无函数定位,修改ascii为unicode即可

    sofu456
  • 实时计算框架 Flink 新方向:打造「大数据+AI」 未来更多可能

    自 Flink 开源以来,越来越多的开发者加入了 Flink 社区。仅仅 2019 年,Flink 在 GitHub 上的 Star 数量翻了一倍,Contri...

    AI研习社
  • OPPO数据中台之基石:基于Flink SQL构建实数据仓库

    导读:本文整理自 2019 年 4 月 13 日在深圳举行的 Flink Meetup 会议,分享嘉宾张俊,目前担任 OPPO 大数据平台研发负责人,也是 Ap...

    zhisheng
  • OPPO数据中台之基石:基于Flink SQL构建实时数据仓库

    本文整理自 2019 年 4 月 13 日在深圳举行的 Flink Meetup 会议,分享嘉宾张俊,目前担任 OPPO 大数据平台研发负责人,也是 Apach...

    养码场

扫码关注云+社区

领取腾讯云代金券