Python 使用表示数字的代码制作一个复杂的算法,并将它们相加为一个用于表示不同个体的数字

Python 使用表示数字的代码制作一个复杂的算法,并将它们相加为一个用于表示不同个体的数字,python,algorithm,loops,Python,Algorithm,Loops,我可以做一个算法,将数字列表(范围从1-470)和加起来的代码(L12=2,L11=7,L10=20,L9=20,L8=70,L7=200,R12=1,R11=4,R10=10,R9=40,R8=100)创建一个L和R代码列表,使用尽可能少的代码加起来,并且每个代码只使用一次 前。 1:R12, 2:L12, 3:R12 L12 但是如果我有一个像40这样的数字,我需要算法只把R9作为一个选项,而不是R=L9,R10,L11,L12,R12,它们加起来等于40你好!您是堆栈溢出新手,可能不知道这

我可以做一个算法,将数字列表(范围从1-470)和加起来的代码(L12=2,L11=7,L10=20,L9=20,L8=70,L7=200,R12=1,R11=4,R10=10,R9=40,R8=100)创建一个L和R代码列表,使用尽可能少的代码加起来,并且每个代码只使用一次

前。 1:R12, 2:L12, 3:R12 L12


但是如果我有一个像40这样的数字,我需要算法只把R9作为一个选项,而不是R=L9,R10,L11,L12,R12,它们加起来等于40

你好!您是堆栈溢出新手,可能不知道这些指导原则。不幸的是,这不是通过给出需求来要求代码的地方。但是,一旦您开始编码并遇到问题,请回来,我们将很乐意提供帮助。请参阅以获取更多建议。谢谢你好我试着运行这个函数,然后通过输入translate(1-470)来调用这个函数,我想运行这个函数,但是得到了一个语法错误。我不确定我应该如何调用这个函数,我是否应该只调用一个号码然后循环它,或者我是否在处理这一切都错了?嘿,我稍微更新了答案。该函数以数字(“num”)作为输入。您可以使用如下函数:translate(1),translate(2),…,translate(470)。您好!它现在运行平稳!但是,它不使用最少的数字组合。例如,对于数字20,最简单的组合就是L10。这就产生了L12、R12、L11、R10,它们仍然加上20,但使用了最多的数字组合。非常感谢你的帮助!
def translate(num):
    code_map = {200:['L7'],100:['R8'],70:['L8'],40:['R9'],20:['L10','L9'],
    10:['R10'],7:['L11'],4:['R11'],2:['L12'],1:['R12']}
    translation = ''
    for value, codes in code_map.items():
        while num >= value and len(codes) > 0:
            translation += codes.pop(0) + ','
            num -= value
    return translation[:len(translation) - 1]

# Translating 1-470
for i in range(1,471):
    translate(i)

# If you want the translations to be stored in a table:
number_codes = dict()
for i in range(1,471):
    number_codes.update([(i, translate(i))])