[编程][笔记] 如何将n^m个可能枚举出来?

实干、实践、积累、思考,创新。


如题 如何将n^m个可能枚举出来?通常枚举实现,直觉想到的就是用循环。

对于n和m很大的时候,写循环显然不可能。另外且当n和m都是运行时确定时,不管n和m是大还是小,都无法用循环了,因为用循环就意味着代码写死了。

最后想了一下,对于这种情况,可以用进制的方式进行实现。

n^m,相当于一个m维的数组,每个数组的取值可能有n个,那么m维数组,总的可能数就有n^m个。

举几个例子

2^m,可以表示为一个2进制位数

4^m,可以表示为一个4进制位数

具体的

2^2,一共有4种可能,具体情况如下:

1: 0 0
2: 1 0
3: 0 1
4: 1 1

3^2,一共有9种可能,具体情况如下:

1: 0 0
2: 1 0
3: 2 0
4: 0 1
5: 1 1
6: 2 1
7: 0 2
8: 1 2
9: 2 2

5^2,一共有25种可能,具体情况如下:

1: 0 0
2: 1 0
3: 2 0
4: 3 0
5: 4 0
6: 0 1
7: 1 1
8: 2 1
9: 3 1
10: 4 1
11: 0 2
12: 1 2
13: 2 2
14: 3 2
15: 4 2
16: 0 3
17: 1 3
18: 2 3
19: 3 3
20: 4 3
21: 0 4
22: 1 4
23: 2 4
24: 3 4
25: 4 4

根据这个思路,编程实现就十分简单了


  • 微信公众号 ( Wechat Subscription)

WeChat_QRCode

欢迎关注 “结构之旅” 微信公众号

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.