数学中进制在算法中的利用

来源:互联网 发布:java中int的范围 编辑:程序博客网 时间:2024/06/08 08:17

举一个例子:

```68是中国人比较喜欢的两个数字,如果说把这两个数字按不同的位数进行随机的组合排列。让它们像这样:    一位:68;    两位:66688688;    三位:666668686688866868886888;    ····    n位:n<10^181018次方)那么,如果我想在其中找到一个特殊位置(比如第9999)的值,该如何运算?

解题思路:
在实用的进制表示中,2进制,8进制,10进制,16进制都比较好用。
1.把6和8看作0和1,用二进制来表示。
2.具体的排列结果可以用“二进制加一”的累加方法取得
3.用等比数列求出具体的位数,最后加上二进制的余数(Sn = 2^1 + 2^2 + ~~ + 2^n,求出n的值)
4.然后将所得的特殊位置二进制的数用6个8替换即可。

延伸:

如果我有8个数需要表示,它们分别是a,b,c,d,e,f,g,h。同样的,我们可以用“8进制加1”的方法列举出所有的可能性。最后只用等比数列(Sn = 8^1 + 8^2 + ~~ + 8^n)求值即可得到特殊位置的值。
0 0
原创粉丝点击