我需要什么样的算法来计算一个等于数字的名字?

时间:2016-09-20 14:29:39

标签: python

例如A = 1,B = 2 ... Z = 26 该名称是自动生成的,必须等于200,用字母的总和。 e.g。

 A = 1
 AB = 3 etc

创建一个函数来创建一个值为200的自动生成字符串数组时会采取哪些步骤?

如何在Python中完成?

1 个答案:

答案 0 :(得分:2)

您希望在某些约束下生成字符串。 这是一种优化问题。但是,我们不需要在这里雇用任何机器学习。

一种可能的解决方案可能看起来像这样(抱歉,没有python,只是伪代码)

  1. name = "" #initialize name variable
  2. place = selectPlaceWhereToInsertNextCharacter(name)
  3. char = selectNextRandomCharacter()
  4. 更新namechar放入place
  5. 如果```name``的值是< 200,转到2
  6. 评论:

    • 函数selectNextRandomCharacter必须选择下一个字符,该值小于目前构建的名称中的剩余空间。 我们假设您当前的名称为"zzz",因此其值为174。您选择的下一个字母不能大于200 - 174。你会溢出来的。 要做到这一点 - 只需选择适当范围内的下一个整数并将其映射到char。
    • selectPlaceWhereToInsertNextCharacter(name)它只是选择放置下一个字符的位置。例如,如果名称为"pawel",则有6个plces可以混合使用新的字母。这是因为我认为这个名字必须是随机的。
    • 可以使用这样的python sum(map(lambda x: ord(x)-64, name))
    • 检查名称的值