gpt4 book ai didi

r - 根数的质因数

转载 作者:行者123 更新时间:2023-12-02 15:57:20 25 4
gpt4 key购买 nike

我已经成功地使用以下代码找到了一个数字的素因数:

   library(gmp)
typ <- match_exams_device()
#--------------------------------------------------------
pipa <- as.numeric(factorize(25))
pipa

但是,我正在寻找的是表示简化的根数。例如

enter image description here

表示为

enter image description here

在这种情况下,获取部首之外的因子,然后将它们相乘就足够了。相同的过程将适用于给出保留在部首内的数字的因子

非常感谢您的帮助

最佳答案

这将返回一个表达式作为输出:

radical_simplify <- function(x, r) {
fac <- as.integer(gmp::factorize(x))
unq <- unique(fac)
n <- tabulate(match(fac, unq))
rad <- prod(unq^(n %% r))
if (rad == 1L) {
parse(text = prod(unq^(n %/% r)))
} else {
mult <- prod(unq^(n %/% r))
if (r == 2L) {
if (mult == 1L) {
parse(text = paste0("sqrt(", rad, ")"))
} else {
parse(text = paste0(mult, "*sqrt(", rad, ")"))
}
} else {
if (mult == 1L) {
parse(text = paste0("", rad, "^(1/", r, ")"))
} else {
parse(text = paste0(mult, "*", rad, "^(1/", r, ")"))
}
}
}
}

使用示例:

radical_simplify(12L, 2L)
#> expression(2*sqrt(3))
radical_simplify(120L, 3L)
#> expression(2*15^(1/3))
identical(9375^(1/5), eval(radical_simplify(9375, 5)))
#> [1] TRUE

更新

为了解释该函数,我将逐步介绍给出的前两个示例。

  1. sqrt(12) :来自fac <- gmp::factorize(12)的因素是 2, 2, 3。 unq <- unique(fac) 中的独特因素是 2 和 3。n <- tabulate(match(fac, unq))返回每个独特因素出现的次数,即 2 和 1。其中 r = 2 ,我们取第二个(平方)根,因此每出现两次独特因子(由商 n %/% r = c(2, 1) %/% 2 = c(1, 0) 给出),我们就可以将其从根式中拉出来。乘以从根式中取出的所有因子即可得到外部数字:mult <- prod(unq^(n %/% r)) = 2^1*3^0 = 2 。类似地,求余运算给出了根部中保留的每个唯一因子的计数: n %% r = c(2, 1) %% 2 = c(0, 1) 。将部首内剩余的所有因子相乘即可得到内部数字:rad <- prod(unq^(n %% r)) = 2^0*3^1 = 3 .
  2. 120^(1/3) :来自fac <- gmp::factorize(120)的因素是 2, 2, 2, 3, 5。 unq <- unique(fac) 中的独特因素是 2、3、5。n <- tabulate(match(fac, unq))返回每个独特因子出现的次数,分别是 3、1 和 1。其中 r = 3 ,我们取三次(立方)根,因此每出现 3 次独特因子(由商 n %/% r = c(3, 1, 1) %/% 3 = c(1, 0, 0) 给出),我们就可以将其从根式中拉出来。乘以从根式中取出的所有因子即可得到外部数字:mult <- prod(unq^(n %/% r)) = 2^1*3^0*5^0 = 2 。类似地,求余运算给出了根部中保留的每个唯一因子的计数: n %% r = c(3, 1, 1) %% 3 = c(0, 1, 1) 。将部首内剩余的所有因子相乘即可得到内部数字:rad <- prod(unq^(n %% r)) = 2^0*3^1*5^1 = 15 .

if组成代码其余部分的语句是为了干净地格式化返回的表达式。

关于r - 根数的质因数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71290629/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com