[HNCTF 2022 WEEK2]来解个方程?

news2024/11/27 12:55:03

标准的Z3题,可以拿来当模版题

题目逻辑很简单

直接看check

from z3 import *
# 初始化求解器
s = Solver()
# 定义6个未知数
n = 24
x = [Int('s' + str(i)) for i in range(0,24)]
s.add(
    245 * x[6]+ 395 * x[5 ]+ 3541 * x[4 ]+ 2051 * x[3 ]+ 3201 * x[2 ]+ 1345 * x[7 ]== 855009,
    3270 * x[6]+ 3759 * x[5 ]+ 3900 * x[4 ]+ 3963 * x[3 ]+ 1546 * x[2 ]+ 3082 * x[7 ]== 1515490,
    526 * x[6]+ 2283 * x[5 ]+ 3349 * x[4 ]+ 2458 * x[3 ]+ 2012 * x[2 ]+ 268 * x[7 ]== 854822,
    3208 * x[6]+ 2021 * x[5 ]+ 3146 * x[4 ]+ 1571 * x[3 ]+ 2569 * x[2 ]+ 1395 * x[7 ]== 1094422,
    3136 * x[6]+ 3553 * x[5 ]+ 2997 * x[4 ]+ 1824 * x[3 ]+ 1575 * x[2 ]+ 1599 * x[7 ]== 1136398,
    2300 * x[6]+ 1349 * x[5 ]+ 86 * x[4 ]+ 3672 * x[3 ]+ 2908 * x[2 ]+ 1681 * x[7 ]== 939991,
    212 * x[22] + 153 * x[21] + 342 * x[20] + 490 * x[12] + 325 * x[11] + 485 * x[10] + 56 * x[9 ]+ 202 * x[8 ]+ 191 * x[23] == 245940,
    348 * x[22] + 185 * x[21] + 134 * x[20] + 153 * x[12] + 460 * x[9 ]+ 207 * x[8 ]+ 22 * x[10] + 24 * x[11] + 22 * x[23] == 146392,
    177 * x[22] + 231 * x[21] + 489 * x[20] + 339 * x[12] + 433 * x[11] + 311 * x[10] + 164 * x[9 ]+ 154 * x[8 ]+ 100 * x[23] == 239438,
    68 * x[20] + 466 * x[12] + 470 * x[11] + 22 * x[10] + 270 * x[9 ]+ 360 * x[8 ]+ 337 * x[21] + 257 * x[22] + 82 * x[23] == 233887,
    246 * x[22] + 235 * x[21] + 468 * x[20] + 91 * x[12] + 151 * x[11] + 197 * x[8 ]+ 92 * x[9 ]+ 73 * x[10] + 54 * x[23] == 152663,
    241 * x[22] + 377 * x[21] + 131 * x[20] + 243 * x[12] + 233 * x[11] + 55 * x[10] + 376 * x[9 ]+ 242 * x[8 ]+ 343 * x[23] == 228375,
    356 * x[22] + 200 * x[21] + 136 * x[11] + 301 * x[10] + 284 * x[9 ]+ 364 * x[8 ]+ 458 * x[12] + 5 * x[20] + 61 * x[23] == 211183,
    154 * x[22] + 55 * x[21] + 406 * x[20] + 107 * x[12] + 80 * x[10] + 66 * x[8 ]+ 71 * x[9 ]+ 17 * x[11] + 71 * x[23] == 96788,
    335 * x[22] + 201 * x[21] + 197 * x[11] + 280 * x[10] + 409 * x[9 ]+ 56 * x[8 ]+ 494 * x[12] + 63 * x[20] + 99 * x[23] == 204625,
    428 * x[18] + 1266 * x[17] + 1326 * x[16] + 1967 * x[15] + 3001 * x[14] + 81 * x[13] + 2439 * x[19] == 1109296,
    2585 * x[18] + 4027 * x[17] + 141 * x[16] + 2539 * x[15] + 3073 * x[14] + 164 * x[13] + 1556 * x[19] == 1368547,
    2080 * x[18] + 358 * x[17] + 1317 * x[16] + 1341 * x[15] + 3681 * x[14] + 2197 * x[13] + 1205 * x[19] == 1320274,
    840 * x[18] + 1494 * x[17] + 2353 * x[16] + 235 * x[15] + 3843 * x[14] + 1496 * x[13] + 1302 * x[19] == 1206735,
    101 * x[18] + 2025 * x[17] + 2842 * x[16] + 1559 * x[15] + 2143 * x[14] + 3008 * x[13] + 981 * x[19] == 1306983,
    1290 * x[18] + 3822 * x[17] + 1733 * x[16] + 292 * x[15] + 816 * x[14] + 1017 * x[13] + 3199 * x[19] == 1160573,
    186 * x[18] + 2712 * x[17] + 2136 * x[16] + 98 * x[13] + 138 * x[14] + 3584 * x[15] + 1173 * x[19] ==1005746,
)
# 检查是否存在满足条件的解
if s.check() == sat:
    # 输出模型(解)
    print(s.model())
    # 提取有序解并转换为整数列表
    m = s.model()
    ordered_solution = [m[x[i]].as_long() for i in range(2,n)]
    print("按顺序排列的解:", ordered_solution)

a=[78, 83, 83, 67, 84, 70, 123, 112, 105, 112, 95, 105, 110, 115, 116, 64, 108, 108, 95, 90, 51, 125]
for i in a:
    print(chr(i),end='')

重点是代码,建议大家过一遍这个代码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1558449.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

中制交通安全统筹闪耀资本市场,成功上市引领行业新篇章

3月30日上午,随着上市钟声的敲响,中制(海南)交通安全统筹服务有限公司(股票代码:HK 31598)在香港股权交易展示中心挂牌上市,中制交通安全统筹董事长熊辉、联合创始人兼CEO张国伟、董事石杰等公司高管、股东、客户、合作伙伴出席挂牌仪式,共同见证敲钟上市,这也使中制交通安全统…

PonyAi Planning-横纵向轨迹规划

PonyAi Planning-横纵向轨迹规划 轨迹规划的探索和挑战 轨迹规划的概念安全舒适两不误:探讨优化算法在规划控制中的应用 轨迹规划的概念 决策 横向规划 纵向规划 优化算法在规划(Planning)中的应用 附赠自动驾驶学习资料和量产经验…

PP-YOLOE: An evolved version of YOLO

摘要 我们在之前 PP-YOLOv2 的基础上进行了优化,使用 无锚 范式,更强大的主干和颈部配备了 CSPRepResStage 。 ET-head 和动态标签分配算法 TAL 。 1 、介绍 受 YOLOX 的启发,我们进一步优化了之前的工作 PP-YOLOv2 。 PP-YOLOv2 是一款高…

使用hping3网络工具构造TCP/IP数据包和进行DDos攻击

1 概述 hping3是一个强大的命令行工具,用于生成、发送和解析TCP/IP协议的数据包。它是开源的网络安全工具,由Salvatore Sanfilippo开发,主要应用于网络审计、安全测试和故障排查等领域。hping3不仅可以作为普通的网络连通性检测工具&#xf…

深入理解数据结构(2):顺序表和链表详解

文章主题:顺序表和链表详解🌱所属专栏:深入理解数据结构📘作者简介:更新有关深入理解数据结构知识的博主一枚,记录分享自己对数据结构的深入解读。😄个人主页:[₽]的个人主页&#x…

数据结构——lesson12排序之归并排序

💞💞 前言 hello hello~ ,这里是大耳朵土土垚~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 💥个人主页&#x…

揭秘五力模型:轻松掌控企业竞争命脉,决策不再迷茫!

五力分析模型又成为波特五力模型是由著名的管理学者迈克尔波特(Michael Porter)在20世纪80年代初提出的一种理论框架,它对企业营销中的战略制定产生了全球性的深远影响。这一模型被广泛应用于企业竞争战略的分析,可以帮助企业有效地分析企业在营销环境中…

Java实验报告2

一、实验目的 本实验为Java课程的第二次实验,其主要目的如下: 理解继承和多态的概念; 掌握域和方法在继承中的特点; 掌握构造函数的继承和重载; 掌握this和super的用法; 二、实验原理 ​ 继承性是面…

上市公司-动态能力数据集(2008-2022年)

01、数据介绍 上市公司动态能力是指企业在不断变化的外部环境中,通过整合、创建和重构内外部资源,寻求和利用机会的能力。这种能力有助于企业重新构建、调配和使用其核心竞争力,从而保持与时俱进,应对市场挑战。具体来说&#xf…

Chrome DevTools中的骚操作

今天来分享 Chrome DevTools 中一些非常实用的功能和调试技巧! 保留日志 当我们刷新完页面之后,通常控制台的 Console 面板就会被清空。如果想保留控制台的日志,就可以在设置中勾选 Preserve log 选项以保留控制台中的日志。 代码覆盖率 我…

快讯!TiDB v8 发版!超硬核 v8 引擎!

TiDB 是 PingCAP 公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP) 的融合型分布式数据库产品。 具备水平扩容或者缩容、金融级高可用、实时 HTAP、云原生的分布式数…

【Docker】Windows中打包dockerfile镜像导入到Linux

【Docker】Windows中打包dockerfile镜像导入到Linux 大家好 我是寸铁👊 总结了一篇【Docker】Windows中打包dockerfile镜像导入到Linux✨ 喜欢的小伙伴可以点点关注 💝 前言 今天遇到一个新需求,如何将Windows中打包好的dockerfile镜像给迁移…

【Linux】进程程序替换 做一个简易的shell

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 文章目录 前言 进程程序替换 替换原理 先看代码和现象 替换函数 第一个execl(): 第二个execv(): 第三个execvp(): 第四个execvpe()&a…

android WMS服务

android WMS服务 WMS的定义 窗口的分类 WMS的启动 WindowManager Activity、Window、DecorView、ViewRootImpl 之间的关系 WindowToken WMS的定义 WMS是WindowManagerService的简称,它是android系统的核心服务之一,它在android的显示功能中扮演着…

YOLOv9改进策略 :卷积魔改 | 感受野注意力卷积运算(RFAConv)

💡💡💡本文改进内容:感受野注意力卷积运算(RFAConv),解决卷积块注意力模块(CBAM)和协调注意力模块(CA)只关注空间特征,不能完全解决卷积核参数共享的问题 💡💡💡使用方法:代替YOLOv9中的卷积,使得更加关注感受野注意力,提升性能 💡💡💡RFAConv…

vue3:通过【自定义指令】实现自定义的不同样式的tooltip

一、效果展示 vue3自定义不同样式的tooltip 二、实现思路 1.ts文件 在ts文件中创建一个全局容器 import一个容器组件,用于存放自定义的各式组件 创建一个指令并获取到指令传递的数据,并为容器组件传值 2.容器组件 用于存放自定义Tooltip样式的组件…

最新2024年增强现实(AR)营销指南(完整版)

AR营销是新的最好的东西,就像元宇宙和VR营销一样。利用AR技术开展营销活动可以带来广泛的利润优势。更不用说,客户也喜欢AR营销! 如果企业使用AR,71%的买家会更多地购物。40%的购物者准备在他们可以在AR定制的产品上花更多的钱。…

详解Java线程的状态

一、观察线程的所有状态 线程的状态是⼀个枚举类型 Thread.State public class ThreadState {public static void main(String[] args) {for (Thread.State state : Thread.State.values()) {System.out.println(state);}} } NEW: 安排了⼯作, 还未开始⾏动 RUNNABLE: 可⼯…

JavaSE day16笔记 - string

第十六天课堂笔记 学习任务 Comparable接口★★★★ 接口 : 功能的封装 > 一组操作规范 一个抽象方法 -> 某一个功能的封装多个抽象方法 -> 一组操作规范 接口与抽象类的区别 1本质不同 接口是功能的封装 , 具有什么功能 > 对象能干什么抽象类是事物本质的抽象 &…

MYSQL——索引概念索引结构

索引 索引是帮助数据库高效获取数据的排好序的数据结构。 有无索引时,查询的区别 主要区别在于查询速度和系统资源的消耗。 查询速度: 在没有索引的情况下,数据库需要对表中的所有记录进行扫描,以找到符合查询条件的记录&#…