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

随着教程推进,基本的语法都接触得差不多了。当要解决某个具体问题时,只需要考虑用什么样的算法来整合运用这些函数和表达式。今天来解决Project Euler的第五个问题,该问题可以用很笨的暴力搜索法子来作,但是更聪明的作法是采用质因子分解的思路。即任何一个合数都可以分解为质数的乘积。为了完成这个题目,还需要学习一点点矩阵,以及和sapply函数相似的另一个函数apply。

# 预备练习 mat <- matrix(1:12,ncol=4) print(mat) t(mat) colnames(mat) <- c(‘one’,'two’,'three’,'four’) rownames(mat) <- c(‘a’,'b’,'c’) print(mat) apply(mat,1,sum) apply(mat,2,sum) sum(apply(mat,2,sum)) prod(apply(mat,2,sum)) # 之前建立的判断是否为质数的函数 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) } x = 1:20 prime <- x[sapply(x,findprime)] # 欧拉问题五,寻找最小的能被1到20所整除的数。 # 建立分解质因子的函数 primefactor <- function(x,prime) { m <- length(prime) fac.count <- numeric(m) names(fac.count) <- prime for (i in 1:m) { prime.num <- prime[i] while (x %% prime.num == 0 & x !=1 ) { fac.count[i] <- fac.count[i] + 1 x = x / prime.num } } return(fac.count) } # 上面的函数负责对一个20以下的数分解为多个质数之积 # 返回每个质因子对应的自乘次数 primefactor(18,prime) # 对1到20每个数进行质因子分解,形成一个表格 result <- t(sapply(1:20,primefactor,prime)) # 求每列的极大值 prime.power <- apply(result,2,max) prod(prime^prime.power) 最终结果是232792560

原文发布于微信公众号 - PPV课数据科学社区(ppvke123)

原文发表时间:2014-05-27

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ACM算法日常

四两拨千斤,GCC编译器(同余模) - HDU 3123

同余这一属性看起来简单,然而却是数论中极为重要的概念。与之相关的公式和定理更是纷繁芜杂,如果不是数学背景的童鞋,恐怕很难深入去钻研所有的知识。

822
来自专栏安恒网络空间安全讲武堂

由suctf一道题学到的中国余子式定理

1163
来自专栏人工智能

头条官方给不了的圣诞帽,Python和OpenCV给你

随着圣诞的到来,大家纷纷@今日头条给自己的头像加上一顶圣诞帽。当然这种事情用很多P图软件都可以做到。但是作为一个学习图像处理的技术人,还是觉得我们有必要写一个程...

20610
来自专栏ACM算法日常

当七夕遇上算法竞赛

  七夕节因牛郎织女的传说而被扣上了「情人节」的帽子。于是TYVJ今年举办了一次线下七夕祭。Vani同学今年成功邀请到了cl同学陪他来共度七夕,于是他们决定去T...

1142
来自专栏懒人开发

(5.5)James Stewart Calculus 5th Edition:The Substitution Rule

注意: 这里 自变量改变,对应范围也会改变 不定积分的上下限,由 [a, b] 变为了 [g(a), g(b)]

1033
来自专栏新工科课程建设探讨——以能源与动力工程专业为例

5.2.1 二维导热算例-热导的概念

材料类,描述材料的参数,如密度、比热和初始温度等,这里特别给出了凝固潜热;这里要注意Math.pow(2,0)的意义,读者自己琢磨,用于判断相邻控制体的...

1030
来自专栏用户2442861的专栏

百度 阿里 华为 腾讯 谷歌面试笔试题及解析

点评:其余题目请参见:http://blog.csdn.net/doc_sgl/article/details/11695671。 2、一个有10亿条记录...

5253
来自专栏数据结构与算法

P1510 精卫填海

题目描述 【版权说明】 本题为改编题。 【问题描述】 发鸠之山,其上多柘木。有鸟焉,其状如乌,文首,白喙,赤足,名曰精卫,其名自詨。是炎帝之少女,名曰女娃。女娃...

3397
来自专栏数据结构与算法

2017.10.23解题报告

预计分数:100+60+0=160 实际分数:100+80+0=180 T1 题目描述 现在有一个字符串,每个字母出现的次数均为偶数。接下来我们把第一次出现的字...

3265
来自专栏阿凯的Excel

或关系求均值(函数虐心版)

最近醉心于Python的学习和分享,好久没有分享Excel相关的文章了。 熟悉我文章的朋友,都知道我特喜欢分享数组函数,也特喜欢分享那种很长的函数。 前几天有朋...

3876

扫码关注云+社区

领取腾讯云代金券