
给定日期,当前的道琼斯指数开盘,以及你当前坐标为四舍五入的整数,就会产生一个“地散列”。
通过任何合理的方式输入(STDIN、函数参数、标志等)以下内容如下:
为了使输入更容易,您可以通过任何合理的结构化格式进行输入。下面是一些示例(您可以创建自己的示例):
["2005","05","26","10458.68","37",-122"]
2005-05-26,10458.68,37,-122
05-26-05 10458.68 37 -122考虑到您的论点,您必须执行漫画中所示的“Geo散列”算法。算法如下。
YYYY-MM-DD-DOW。例如,它可能看起来像2005-05-26-10458.68。db9318c2259923d0和8b672cb305440f97。0.并转换为十进制。使用上面的字符串,我们得到以下信息:0.db9318c2259923d0和0.8b672cb305440f97,它们被转换成十进制,近似为0.8577132677070023444和0.5445430695592821056。您必须将其截断前8个字符,生成0.857713和0.544543。37 + 0.857713 = 37.857713和-122 + 0.544543 = -122.544543发布于 2017-01-15 16:35:02
import md5
d,q,c=input()
h=md5.new(d+'-'+q).hexdigest()
print map(lambda p,o:o+'.'+`float.fromhex('.'+p)`[2:8],(h[:16],h[16:]),c)输入以'2005-05-26','10458.68',('37','-122')形式给出(使用示例)。
使用MD5计算md5.new().hexdigest()哈希,然后执行必要的转换。我可以使用h而不是h[:16]来保存五个字节,但我不确定这是否会影响十进制转换中最重要的六个数字。
把它放进去! (用eval()调用代替input())
https://codegolf.stackexchange.com/questions/106935
复制相似问题