gpt4 book ai didi

r - R中字母之间所有可能的点组合

转载 作者:行者123 更新时间:2023-12-05 00:46:23 25 4
gpt4 key购买 nike

我有一个字符串“ab”,我想在 a、b 之间生成所有可能的点组合。例如,

<code>enter image description here</code>

在这种情况下,最多可能有 3 个点(没有两个连续的点),最小点为 0。“ab”只是一个玩具示例,字符串的长度可以大到 30。
我不知道从哪里开始。任何帮助将不胜感激。提前致谢。

最佳答案

这故意不是一个完整的答案,但这是一个非常好的开始。

如果您有 n字母有n + 1点的可能位置,以及 2^(n + 1)因为每个位置都可以有一个点或没有点。您只需要遍历这些可能性。我们将首先生成这些 2^(n + 1)使用 expand.grid 的点图案:

input = "abc"
n = nchar(input)
dots = do.call(expand.grid, rep(list(c("", ".")), n + 1))
dots
# Var1 Var2 Var3 Var4
# 1
# 2 .
# 3 .
# 4 . .
# 5 .
# 6 . .
# 7 . .
# 8 . . .
# 9 .
# 10 . .
# 11 . .
# 12 . . .
# 13 . .
# 14 . . .
# 15 . . .
# 16 . . . .

我会留给你完成 - 将你的输入字符串分解成单个字母 strsplit(input, "") ,并使用 paste0或类似的将字母与点组合在一起。

你说你的输入可以有长达 30 的长度。结果会有 2^31 = 2,147,483,648 种组合,这是相当多的。在 R 中执行此操作可能会遇到内存限制,具体取决于您的机器。我会考虑考虑您是否真的需要生成所有组合。通常更好的方法是使用迭代器(例如,参见 iterators 包)。这可以帮助您生成所需的任意组合,而无需您生成每个组合。

关于r - R中字母之间所有可能的点组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54186501/

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