如何将整数转换为基数62(如十六进制,但使用这些数字:'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ').
我一直在努力为它找到一个好的Python库,但它们似乎都在转换字符串.Python base64模块只接受字符串并将一个数字转换为四个字符.我正在寻找类似于URL缩短器使用的东西.
我需要学习如何设计DFA,以便给定任何数字'n',它接受二进制字符串{0,1},其十进制等效数可以被'n'整除.
不同的'n'会有不同的DFA,但有人可以给出一个基本的方法,我应该遵循任何数字0 <n <10.
我想要一种在URL中表示整数的最短方式.例如,11234可以使用十六进制缩短为"2be2".由于base64使用的是64字符编码,因此应该可以使用比十六进制更少的字符来表示base64中的整数.问题是我无法弄清楚使用Python将整数转换为base64(以及再返回)的最简洁方法.
base64模块有处理字节串的方法 - 所以也许一个解决方案是将一个整数转换为二进制表示形式作为Python字符串...但我不知道如何做到这一点.
python允许使用范围[2,36]中的任何基数从字符串转换为整数:
int(string,base)
Run Code Online (Sandbox Code Playgroud)
我正在寻找一个优雅的反函数,它接受一个整数和一个基数并返回一个字符串
例如
>>> str_base(224,15)
'ee'
Run Code Online (Sandbox Code Playgroud)
我有以下解决方案:
def digit_to_char(digit):
if digit < 10: return chr(ord('0') + digit)
else: return chr(ord('a') + digit - 10)
def str_base(number,base):
if number < 0:
return '-' + str_base(-number,base)
else:
(d,m) = divmod(number,base)
if d:
return str_base(d,base) + digit_to_char(m)
else:
return digit_to_char(m)
Run Code Online (Sandbox Code Playgroud)
注意:digit_to_char()在<z'之后使用ascii字符任意使用<= 169的碱基作为36以上碱基的数字
有没有python内置,库函数,或更优雅的反函数int(字符串,基数)?
在Python 2中你得到了
>>> from string import *
>>> letters
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
Run Code Online (Sandbox Code Playgroud)
但是在Python 3中,你得到了
>>> from string import *
>>> letters
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'letters' is not defined
Run Code Online (Sandbox Code Playgroud)
它没有定义,而是digits和whitespace.
lettersPython 3中字符串模块的等价性是什么?
我需要生成一个随机ID,字母数字,6个字符,作为短链接服务的ID.
目前,我生成一个随机的6个字符的代码,在数据库中查找它是否以前使用过,如果有,请重复此过程.我需要它对所有36 ^ 6种组合都是独一无二的.随着系统的发展,其性能越差.
是否有已知的良好方法可以最小化命中数据库,在全局范围内保留状态,并且查找时间不会超过100毫秒?
感谢任何帮助
我正在分析我的代码的复杂性.从我在网上找到的,因为字符串在python中是不可变的,字符串和字符的串联应该是O(len(string)+ 1).
现在,这是我的一段代码(简化):
word = ""
for i in range(m):
word = char_value + word
return word
Run Code Online (Sandbox Code Playgroud)
总时间复杂度应为:
(0 + 1)+(1 + 1)+ ... + m = m(m + 1)/ 2 = O(m ^ 2)
它是否正确?
我想知道如何在python中执行等效的range函数,但是能够指定基数.例如:
countUp(start=0, end=1010, base=2)
countUp(start=0, end=101, base=3)
countUp(start=0, end=22, base=4)
Run Code Online (Sandbox Code Playgroud)
基数2计数的示例输出:
[0, 1, 10, 11, 100, ...]
Run Code Online (Sandbox Code Playgroud)
是否有一个我缺少的功能呢?或者我该怎么做呢?
我需要在网页上获取一些结果,它使用一些JavaScript代码来生成我感兴趣的部分,如下所示
eval(function(p,a,c,k,e,d){e=function(c){return c};if(!''.replace(/^/,String)){while(c--)d[c]=k[c]||c;k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p;}('5 11=17;5 12=["/3/2/1/0/13.4","/3/2/1/0/15.4","/3/2/1/0/14.4","/3/2/1/0/7.4","/3/2/1/0/6.4","/3/2/1/0/8.4","/3/2/1/0/10.4","/3/2/1/0/9.4","/3/2/1/0/23.4","/3/2/1/0/22.4","/3/2/1/0/24.4","/3/2/1/0/26.4","/3/2/1/0/25.4","/3/2/1/0/18.4","/3/2/1/0/16.4","/3/2/1/0/19.4","/3/2/1/0/21.4"];5 20=0;',10,27,'40769|54|Images|Files|png|var|imanhua_005_140430179|imanhua_004_140430179|imanhua_006_140430226|imanhua_008_140430242|imanhua_007_140430226|len|pic|imanhua_001_140429664|imanhua_003_140430117|imanhua_002_140430070|imanhua_015_140430414||imanhua_014_140430382|imanhua_016_140430414|sid|imanhua_017_140430429|imanhua_010_140430289|imanhua_009_140430242|imanhua_011_140430367|imanhua_013_140430382|imanhua_012_140430367'.split('|'),0,{}))
Run Code Online (Sandbox Code Playgroud)
结果eval()对我来说很有价值,我正在编写一个Python脚本,是否有任何库可以用来虚拟运行这段JavaScript代码并获得输出?
谢谢
我们有很多像(10**1500000)+1,并希望将其转换为基数3.下面是我们用普通Python发现的最快方式运行代码(不使用numpy或CAS库).
如何加速基础转换(到基数3)的性能?
我们想知道如何通过以下两种方式完成此操作:
非常欢迎任何帮助.这是我们目前的代码:
#### --- Convert a huge integer to base 3 --- ####
# Convert decimal number n to a sequence of list elements
# with integer values in the range 0 to base-1.
# With divmod, it's ca. 1/3 faster than using n%b and then n//=b.
def numberToBase(n, b):
digits = []
while n:
n, rem = divmod(n, b)
digits.append(rem)
return digits[::-1]
# Step 2: Convert given integer to another base
# With …Run Code Online (Sandbox Code Playgroud) python ×8
math ×2
algorithm ×1
automata ×1
base ×1
base62 ×1
base64 ×1
dfa ×1
javascript ×1
performance ×1
python-3.x ×1
range ×1
regex ×1
string ×1
url ×1