java中如何将多个字符随机排列

发布于 2021-11-24 02:36:16 字数 230 浏览 961 评论 7

假设有一串字符串,例如:有一个包含n字符的字符串abcdefghijklm.....,我想把这些字符随机取出来拼成6个字母的字符串,比如拼成adbfde。

这是数学中的一个阶乘问题,就类似于从一个桶中的n个球中取6个球,每次取一个球,记录下取出的球的标记后放入桶中,这样每个球每次被取出来的机会都一样,共有n的6次方中结果。

我上面的字符串排序的问题和数字排序的问题相同,怎么用代码实现n个字母的排序?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

孤檠 2021-11-30 13:47:25

试试Collections.shuffle()

因为看清所以看轻 2021-11-30 13:43:45

言语费力,写了下实现,直接上代码吧

千纸鹤带着心事 2021-11-30 12:11:20

这样取到一个倒是没问题,但是我的意思是把所有可能的顺序都取出来就麻烦了

梦中楼上月下 2021-11-30 11:03:15

比如从1,2,3,4中取两个共有16中排序方式,我要的是这16中排序方式都出来。

情栀口红 2021-11-29 04:39:45

回复
同一个数字允许取多次?这个类似于全排列算法吧。采用递归的方式,传递一个层级参数,在方法体内对数组做遍历取所有可能值,每次递归层级递减直至1。或者直接百度下全排列算法,找个效率高的改一下...

平定天下 2021-11-27 02:18:51

我的意思是这样的,比如箱内有1,2,3,4标号的小球,如果有放回的取2次,那么所有的顺序为,11,12,13,14,21,22,23,24,31,32,33,34,41,42,43,44,你说的使用random确实可以取到上面所有可能的顺序中的一个,但问题是我想要打印出来所有的顺序,如果用random来获取所有的顺序也可以,但是你想想就因为它是随机的,那效率就会有多不好。

永不分离 2021-11-25 18:59:16

把这n个字符放进数组,通过
random函数
取 0~n-1 范围内的随机数,根据随机到的数字取数组中的值

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文