小编Smi*_*son的帖子

Mathematica,字母代

如果我有一个字母表,让我们说sigma = {1,2,3,4,a,b,c,d,e,f,g}并想生成长度为n的所有单词,有没有办法做到这一点?

我可以Flatten[Outer[Function[{x, y}, {x, y}], sigma, sigma], 1]为wordlength = 2做到这一点,但它并没有更多的字母.排列不起作用,因为它不包括双打. Permutations[sigma, {2}] 例如,不给{a,a}.

有没有一种简单的方法可以做到这一点,或者我必须为它编写一个函数?

这对于n = 2是正确的(但我想要任意n):

{{1, 1}, {1, 2}, {1, 3}, {1, 4}, {1, a}, {1, b}, {1, c}, {1, d}, {1, 
  e}, {1, f}, {1, g}, {2, 1}, {2, 2}, {2, 3}, {2, 4}, {2, a}, {2, 
  b}, {2, c}, {2, d}, {2, e}, {2, f}, {2, g}, {3, 1}, {3, 2}, {3, 
  3}, {3, 4}, {3, a}, {3, b}, {3, c}, {3, …
Run Code Online (Sandbox Code Playgroud)

wolfram-mathematica

5
推荐指数
2
解决办法
370
查看次数

标签 统计

wolfram-mathematica ×1