gpt4 book ai didi

matlab - 按字典顺序列出数字 1,...,n 的所有排列

转载 作者:行者123 更新时间:2023-12-04 07:09:08 24 4
gpt4 key购买 nike

我正在尝试编写一个 Matlab,以按字典顺序列出数字 1 到 n 的所有排列。到目前为止我所拥有的如下。我正在使用递归尝试编写一个适用于 n=3 的程序,然后看看我是否可以深入了解为任何 n 编写程序。到目前为止,我有 n=3 的 6 列中的 2 列:P=[1 2 3;1 3 2] .我需要接下来的两列来简单地交换一列和两列。我不知道如何开始这样做。

function [P] = shoes(n)

if n == 1
P = 1;
elseif n == 2
P = [1 2; 2 1];
else
T = shoes(n-1) + 1;
G = ones(factorial(n-1),1);
P(1:2,1:3) = [G T];
end

最佳答案

the documentation作为一个开始。如果按字典顺序您的意思是按英文名称的字母顺序排列,您可能希望用名称填充您的输入,对它们进行排序,然后对其进行置换。

如果我误解了您想要的内容,请评论或编辑问题,我稍后再回来查看。

提示:

  • 空列表的排列很容易找到。
  • 归纳法是数学中的一个重要概念。你应该对它很熟悉。
  • 你工作的环境支持递归
  • 较长列表的排列可以通过递归按照您想要的顺序生成;首先弄清楚你想要第一个元素是什么,然后弄清楚其余的。

  • 如果您再次陷入困境,请编辑问题,发布您到目前为止所获得的信息以及您认为自己陷入困境的位置/原因。

    看到你的代码后的提示。
  • 您的核心函数置换一个向量,因此应该将向量作为参数,而不是整数
  • 不要开始解决 n=3 的情况;尝试 n=0 的情况(它是 []),然后直接进入 n=20 的情况。
  • 在编写任何代码之前,请考虑 n=20 的情况。第一列会是什么样子?在 n=20 案例的答案中是否隐藏了 n=19 案例的任何示例? (答案是肯定的,而且它们都是不同的)。
  • 重读第一组提示
  • 关于matlab - 按字典顺序列出数字 1,...,n 的所有排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/647030/

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