相关疑难解决方法(0)

基地62转换

如何将整数转换为基数62(如十六进制,但使用这些数字:'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ').

我一直在努力为它找到一个好的Python库,但它们似乎都在转换字符串.Python base64模块只接受字符串并将一个数字转换为四个字符.我正在寻找类似于URL缩短器使用的东西.

python math base62

77
推荐指数
5
解决办法
5万
查看次数

设计DFA接受可被数字'n'整除的二进制字符串

我需要学习如何设计DFA,以便给定任何数字'n',它接受二进制字符串{0,1},其十进制等效数可以被'n'整除.

不同的'n'会有不同的DFA,但有人可以给出一个基本的方法,我应该遵循任何数字0 <n <10.

regex automata dfa

68
推荐指数
2
解决办法
11万
查看次数

如何在Python中将整数转换为最短的url-safe字符串?

我想要一种在URL中表示整数的最短方式.例如,11234可以使用十六进制缩短为"2be2".由于base64使用的是64字符编码,因此应该可以使用比十六进制更少的字符来表示base64中的整数.问题是我无法弄清楚使用Python将整数转换为base64(以及再返回)的最简洁方法.

base64模块有处理字节串的方法 - 所以也许一个解决方案是将一个整数转换为二进制表示形式作为Python字符串...但我不知道如何做到这一点.

python url base64

63
推荐指数
6
解决办法
3万
查看次数

Python优雅的反函数int(字符串,基数)

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

46
推荐指数
4
解决办法
4万
查看次数

Python 2中Python 3中字母的等价性是什么?

在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)

它没有定义,而是digitswhitespace.

lettersPython 3中字符串模块的等价性是什么?

python python-3.x

24
推荐指数
1
解决办法
1万
查看次数

用于唯一随机生成ID的良好算法

我需要生成一个随机ID,字母数字,6个字符,作为短链接服务的ID.

目前,我生成一个随机的6个字符的代码,在数据库中查找它是否以前使用过,如果有,请重复此过程.我需要它对所有36 ^ 6种组合都是独一无二的.随着系统的发展,其性能越差.

是否有已知的良好方法可以最小化命中数据库,在全局范围内保留状态,并且查找时间不会超过100毫秒?

感谢任何帮助

algorithm database-design

18
推荐指数
2
解决办法
1万
查看次数

Python中字符串连接的时间复杂度

我正在分析我的代码的复杂性.从我在网上找到的,因为字符串在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 string time-complexity

9
推荐指数
1
解决办法
2万
查看次数

用变量base在python中向上计数

我想知道如何在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)

是否有一个我缺少的功能呢?或者我该怎么做呢?

python base range

8
推荐指数
2
解决办法
1310
查看次数

如何评估Python中的JavaScript代码

我需要在网页上获取一些结果,它使用一些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代码并获得输出?

谢谢

javascript python

6
推荐指数
2
解决办法
9872
查看次数

使用Python 3快速计算实数巨大整数的基数3值

我们有很多像(10**1500000)+1,并希望将其转换为基数3.下面是我们用普通Python发现的最快方式运行代码(不使用numpy或CAS库).

如何加速基础转换(到基数3)的性能?

我们想知道如何通过以下两种方式完成此操作:

  1. 仅使用Python 3的内置函数(没有numpy)?
  2. 在普通的Python 3程序中使用numpy(或另一个CAS库)?

非常欢迎任何帮助.这是我们目前的代码:

#### --- 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 math performance

5
推荐指数
1
解决办法
156
查看次数