繁体   English   中英

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

[英]What kind of algorithm would I need to compute a name that equals a number?

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

 A = 1
 AB = 3 etc

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

这将如何在 Python 中完成?

您想在某些约束下生成一个字符串。 这是一种优化问题。 然而,我们不需要在这里雇佣任何机器学习。

一种可能的解决方案可能如下所示(抱歉,没有 python,只有伪代码)

  1. name = "" #初始化名称变量
  2. place = selectPlaceWhereToInsertNextCharacter(name)
  3. char = selectNextRandomCharacter()
  4. 更新namecharplace
  5. 如果 ```name` 的值 < 200,转到 2

注释:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM