相关疑难解决方法(0)

R:生成没有重复元素的矢量的所有排列

是否有一种直接的方法来生成一个整数向量(1到最大999)的所有可能的排列,这些排列明确地排除了重复的元素?

例如,对于具有1到9范围内的三个元素的向量,序列1 2 3将是可接受的,1 2 9但是1 2 2将是无效的.序列必须包含确切的n元素(在本例中为三个).编辑:为了避免混淆,订单很重要,因此1 2 9并且9 2 1都是有效的和必需的.

关于使用R on SO(例如thisthis)的排列和组合有很多问题,但似乎没有一个适合这种特殊情况.我希望有一个不起眼的基础R或包功能,它将照顾它,而我自己不必写一个没有优势的功能.

r

12
推荐指数
3
解决办法
2万
查看次数

生成ai = 1的线性不定方程的所有解的有效算法

我试图为给定的H生成以下方程的所有解.

H = 4时:

1) ALL solutions for x_1 + x_2 + x_3 + x_4 =4
2) ALL solutions for x_1 + x_2 + x_3 = 4
3) ALL solutions for x_1 + x_2 = 4
4) ALL solutions for x_1 =4
Run Code Online (Sandbox Code Playgroud)

对于我的问题,总有4个方程要解决(独立于其他方程).总共有2 ^(H-1)个解决方案.对于前一个,这里是解决方案:

1) 1 1 1 1
2) 1 1 2 and 1 2 1 and 2 1 1
3) 1 3 and 3 1 and 2 2
4) 4
Run Code Online (Sandbox Code Playgroud)

这是一个解决问题的R算法.

library(gtools)
H<-4
solutions<-NULL

for(i in seq(H))
{ …
Run Code Online (Sandbox Code Playgroud)

algorithm math equation linear-programming diophantine

4
推荐指数
1
解决办法
3051
查看次数

在R中创建两个向量的所有可能排列

我有两个这样的向量:

f1=c('a','b','c','d')
e1=c('e','f','g')
Run Code Online (Sandbox Code Playgroud)

它们有4 ^ 3个不同的排列。我需要在R软件中创建它们的所有可能排列。

(1):
a e
a f
a g
(2):
a e
a f
b g
...
Run Code Online (Sandbox Code Playgroud)

此外,我的真实数据非常庞大,我需要速度代码。

r

4
推荐指数
1
解决办法
3983
查看次数

生成0和1排列的有效方法?

我试图做的是在给定特定样本大小的情况下生成1和0的所有可能排列。例如,对于一个n = 8的样本,我希望m = 2 ^ 8 = 256个可能的排列,即:

n = 8时1和0的可能排列

我已经在R中编写了一个函数来执行此操作,但是在n = 11之后,需要很长时间才能运行。我更喜欢R中的解决方案,但是如果它是另一种编程语言,则可能可以解决。谢谢!

PermBinary <- function(n){ 
  n.perms <- 2^n 
  array <- matrix(0,nrow=n,ncol=n.perms) 
  # array <- big.matrix(n, n.perms, type='integer', init=-5) 
  for(i in 1:n){ 
    div.length <- ncol(array)/(2^i) 
    div.num <- ncol(array)/div.length 
    end <- 0 
      while(end!=ncol(array)){ 
        end <- end +1 
        start <- end + div.length 
        end <- start + div.length -1 
        array[i,start:end] <- 1 
      } 
   } 
   return(array) 
} 
Run Code Online (Sandbox Code Playgroud)

algorithm r permutation

2
推荐指数
1
解决办法
244
查看次数