代码日猴子市场的到来

代码日猴子市场的到来

第22天:猴子市场

GitHub 仓库

今天的挑战相当简单直接。大部分工作都体现在问题描述中:一些整数运算,最后再进行简单的求和(至少第一部分是这样)。

第一部分

代码非常简洁,我们循环2000次,每次生成一个新的秘密数字并存储起来,以便最后进行求和。

第二部分

这部分需要更多思考,但大部分逻辑也已在描述中给出。

calc_price_changes() 函数是主要区别之一。此函数处理一系列数字,仅计算“价格变化”以识别模式。

让我们深入了解一下:

calc_price_changes 函数:

处理生成的秘密数字列表。计算价格变化(每个秘密数字的最后一位)。识别四个连续变化的独特模式。根据这些模式累加分数。

它需要两个参数:一个数字列表(代表生成的秘密数字)和一个类似字典的对象 (defaultdict(int)),用于存储和累加独特的模式分数。

defaultdict 是一个非常有用的工具。它与普通字典类似,但有一个关键优势:如果字典中找不到键,它会自动创建该键并为其分配传入类型的默认值。

寻找四个连续变化的序列

for p in range(len(price_change_sequence) - 4 + 1):    changes = price_change_sequence[p: p + 4]    key = tuple((changes[0][0], changes[1][0], changes[2][0], changes[3][0]))    if key not in sequences:        sequence_sum[key] += changes[3][1]        sequences.add(key)

登录后复制

这段代码使用大小为4的滑动窗口提取四个连续的(变化,价格)元组。

例如:如果 price_change_sequence 为 [(1, 5), (2, 7), (-1, 6), (3, 9)],则一个“块”为 [(1, 5), (2, 7), (-1, 6), (3, 9)]。

然后,我们只提取四个元组中的变化值,例如 -2, -1, 1 等。如果该模式尚未被处理,则它是一个新模式,因此我们将最后一个价格(changes[3][1])添加到 sequence_sum[模式]。通过将键添加到 sequences 集合中,将其标记为已处理。

函数结束后:

sequence_sum 包含唯一(因为我们使用了集合)的四个变化模式及其累加分数的映射(基于每个序列中的最终价格)。

例如:{(1, 2, -1, 3): 9, (-2, 0, 1, -1): 6}.

演练

假设我们有一个输入:

generated_secrets = [45, 46, 50, 53, 58, 61]sequence_sum = defaultdict(int)calc_price_changes(generated_secrets, sequence_sum)

登录后复制

步骤:

计算价格变化:价格:[5, 6, 0, 3, 8, 1](最后一位数字)。变化:[(1, 6), (-6, 0), (3, 3), (5, 8), (-7, 1)]

提取四个变化模式:(1, -6, 3, 5) → 将 8(模式中的最后一个价格)添加到 sequence_sum。(-6, 3, 5, -7) → 将 1 添加到 sequence_sum。

输出:

{(1, -6, 3, 5): 8, (-6, 3, 5, -7): 1}

总结

所有这些是如何结合在一起的:

输入处理:我们读取输入并将其转换为秘密数字列表。

序列生成:对于每个秘密数字,我们迭代2000代,生成一系列派生值。

价格变化分析:我们计算序列中连续价格(最后一位数字)之间的差异,识别独特的四个变化模式及其累加分数。

结果提取:最后,我们找到总分最高的模式,确定最有影响力的模式。

通过将问题分解成清晰的模块化步骤,我们有效地处理了数据、跟踪了模式并解决了难题。

希望这对你有所帮助,并且你从我的解答中学到了一些东西。欢迎关注或在 Twitter 上联系。

以上就是代码日猴子市场的到来的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2174575.html

(0)
上一篇 2025年2月25日 12:19:24
下一篇 2025年2月25日 12:19:38

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 运行和测试代码的 AI 编码代理

    fine公司在圣诞节发布了两个重磅功能,预示着2025年ai编码辅助工具将迎来飞跃式发展!这两个功能——ai沙箱和实时预览——现已整合到fine的ai编码代理中,为开发者带来革命性的编码体验。 Fine的AI代理现在能够在GitHub上创建…

    2025年2月25日
    000
  • 系统设计的重要元素和要记住的事情

    系统设计是构建满足特定需求的系统架构、模块、接口和数据的过程,是软件开发中至关重要的环节,直接影响系统的可扩展性、可维护性、可靠性和性能。本文将深入探讨关键的最佳实践,并辅以代码示例。 1. 深入理解问题领域 在编码之前,务必透彻理解待解决…

    2025年2月25日
    200
  • 只需几分钟即可在 Ubuntu 上设置 Anaconda:简化您的 AI 工作流程

    在数据科学、机器学习或人工智能项目管理中,选择合适的工具至关重要。anaconda是一个强大的python库,简化了包、依赖项和环境的管理。无论是资深ai模型开发者,还是数据科学领域的新手,anaconda都能提供良好的开端。 本指南将逐步…

    2025年2月25日 编程技术
    200
  • 掌握快速排序:计算机科学的基本算法

    快速排序简介 在广阔的算法和数据结构世界中,快速排序是最优雅、最高效的排序方法之一。它的简单性和有效性使其成为开发人员和研究人员的最爱。无论您是致力于优化代码还是只是对现代计算系统如何处理大型数据集感到好奇,了解快速排序都是非常宝贵的。 快…

    编程技术 2025年2月25日
    200
  • 在 Python 中注释函数

    最近,我撰写了一篇关于TypeScript函数注释的博文。 深入研究后,我了解了更多关于Python函数注释的知识。 本文将使用与上一篇博文类似的示例,讲解Python函数的注释方法。 您可以通过将python.analysis.typec…

    2025年2月25日
    200
  • Python 字符串:探索字符串操作方法

    Python 字符串详解: 字符串是 Python 中用单引号或双引号括起来的字符序列。 例如: “你好,世界!”‘Python’“这是个问题吗?” 字符串类型: 单行字符串: 使用单引号 ( ‘这是一个字符串’ )…

    2025年2月25日
    200
  • 探索 Python 编程世界

    python:程序员挚爱的多功能编程语言 Python凭借其简洁易懂的语法和强大的功能,近年来已成为备受青睐的编程语言。无论是编程新手还是经验丰富的开发者,都能轻松上手Python并从中受益。本文将深入探讨Python的核心特性、应用领域以…

    2025年2月25日
    200
  • 全球发展和增长的污泥管理和脱水概述

    污泥管理与脱水市场深度分析 Stellar Market Research 近期发布的报告,对全球污泥管理与脱水市场进行了全面评估。报告显示,2023年市场规模达49.2亿美元,预计到2030年将增长至91.8亿美元,复合年增长率为9.3%…

    2025年2月25日
    200
  • 了解 Python 术语:模块、包、库和框架

    学习编程语言时,理解专业术语至关重要。Python中的模块(module)、包(package)、库(library)和框架(framework)经常出现,但它们之间的区别并不总是清晰明了。本文旨在阐明这些概念,并通过示例说明其差异。 1.…

    2025年2月25日
    200
  • 在 Pytest-Django 中处理非托管模型

    处理 Pytest-Django 中的非托管模型的策略 在 Django 项目中测试非托管模型(managed = False)可能很棘手,尤其是在测试环境包含托管和非托管模型混合,或涉及多个数据库时。本文探讨几种使用 pytest-dja…

    2025年2月25日
    200

发表回复

登录后才能评论