一个数学算法问题?

问题是这样的。从12345678到87654321。从这之间挑选符合以下2个条件的数字。1:其中要求数字的每一位都不相同,2:且数字是由12345678打乱顺序而来。(每... 问题是这样的。
从 12345678 到 87654321 。
从这之间挑选符合以下2个条件的数字。
1:其中要求数字的每一位都不相同,
2:且数字是由12345678 打乱顺序而来。(每一位都不包含0或者9,但是总体必须包含12345678)

比如数字 56321478,比如数字73841652、这两个就是符合说明的。


1:符合条件的数字有多少个。
2:把符合条件的数字从小到大排列,如果要从排列后的队伍中,取第N(比如第300个)个数,那个数是多少,怎么计算的。
展开
 我来答
匿名用户
2020-07-21
展开全部

用fortran写了一段代码,有注释,供您参考。

符合条件的一共有40320个。

算法本身是按照递增序生成的,所以不用排序。生成数组的时间小于0.5秒。

第300个排列值是,12564873。

以下是代码和输出的附图。

上海华然企业咨询
2024-10-28 广告
作为上海华然企业咨询有限公司的一员,我们深知大模型测试对于企业数字化转型与智能决策的重要性。在应对此类测试时,我们注重数据的精准性、算法的先进性及模型的适用性,确保大模型能够精准捕捉市场动态,高效分析企业数据,为管理层提供科学、前瞻的决策支... 点击进入详情页
本回答由上海华然企业咨询提供
GTA小鸡
高粉答主

2020-07-21 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2.6万
采纳率:78%
帮助的人:1.3亿
展开全部
1.A(8,8)=40320
2.299/7!=0余299,故首位为1,剩[2,3,4,5,6,7,8]
299/6!=0余299,故第二位为2,剩[3,4,5,6,7,8]
299/5!=2余59,故第三位为5,剩[3,4,6,7,8]
59/4!=2余11,故第四位为6,剩[3,4,7,8]
11/3!=1余5,故第五位为4,剩[3,7,8]
5/2!=2余1,故第六位为8,剩[3,7]
1/1!=1余0,故第七位为7,剩3,自动成为第八位
因此第300个全排列为12564873。
刚刚5!算错了,已更正
追问
请问你的那个除数是怎么算出来的?
追答
第一次的除数是300-1
后面每次的除数是上一次的余数
这种算法叫逆康托展开。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
007数学象棋
2020-07-21 · tangram007数学vs象棋
007数学象棋
采纳数:1306 获赞数:24959

向TA提问 私信TA
展开全部
只有八个可用数字,相当于八进制。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式