惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
C
CXSECURITY Database RSS Feed - CXSecurity.com
D
Docker
有赞技术团队
有赞技术团队
WordPress大学
WordPress大学
Jina AI
Jina AI
小众软件
小众软件
Last Week in AI
Last Week in AI
Hugging Face - Blog
Hugging Face - Blog
博客园 - 三生石上(FineUI控件)
宝玉的分享
宝玉的分享
美团技术团队
爱范儿
爱范儿
V
V2EX
大猫的无限游戏
大猫的无限游戏
人人都是产品经理
人人都是产品经理
J
Java Code Geeks
博客园 - 司徒正美
博客园 - 叶小钗
S
SegmentFault 最新的问题
量子位
S
Secure Thoughts
月光博客
月光博客
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
O
OpenAI News
L
LINUX DO - 最新话题
罗磊的独立博客
SecWiki News
SecWiki News
雷峰网
雷峰网
Recent Announcements
Recent Announcements
V2EX - 技术
V2EX - 技术
T
Tailwind CSS Blog
H
Hacker News: Front Page
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
云风的 BLOG
云风的 BLOG
Schneier on Security
Schneier on Security
T
The Blog of Author Tim Ferriss
IT之家
IT之家
博客园 - 聂微东
腾讯CDC
N
News | PayPal Newsroom
P
Proofpoint News Feed
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
The GitHub Blog
The GitHub Blog
Hacker News: Ask HN
Hacker News: Ask HN
aimingoo的专栏
aimingoo的专栏
Webroot Blog
Webroot Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Google DeepMind News
Google DeepMind News
K
Kaspersky official blog

lvbibir's Blog

shell | 磁盘空间分析脚本 Linux cat 和 tee 命令写入文件 python | 使用 uv 管理你的 python 环境 Claude Code 完整配置指南 windows | mihomo 内核独立部署指南 linux | 磁盘扩容 wsl | 释放长久运行占用的磁盘空间 mysql | 线程上限问题处理 麒麟 7.6 安装谷歌 OTP 认证模块 suse 12sp5 升级 openssh 及 openssl suse 12sp5 部署 mysql 5.7 《谁的青春不迷茫》 docker | centos7 部署 docker vim | 基础配置和使用 windows | rime 输入法 & 雾凇方案 shell | sshpass 批量传输文件及执行命令 wsl | 原生 linux 方式安装 docker nodejs | fnm + pnpm 开发环境配置 wsl | 安装配置 miniconda 虚拟环境 wsl | 自动更新系统代理 wsl | bashrc 环境变量不正确加载的处理方法 wsl | win10 安装 wsl2 troubleshooting | ssh 成功但是 scp 失败 linux | 常用命令总结 docker 部署 piclist shell | 检测网站存活并自动钉钉告警 Zabbix | 监控端口连通性并自动追踪 TCP 路由 windows | 自定义开机快速启动项 windows | miniconda 配置 python 虚拟环境 Zabbix | 监控主机到指定 ip 的流量大小 shell | centos 初始化 loki (二) 部署 loki (一) 简介 prometheus (六) Alertmanager prometheus (五) 记录规则与告警规则 prometheus (四) 黑盒监控 prometheus (三) 服务发现 prometheus (二) 静态配置 prometheus (一) 简介及部署 traefik (四) TraefikService 服务 traefik (三) Middleware 中间件 traefik (二) ingressRoute 路由 traefik (一) 简介、部署和配置 kubernetes | Gateway API 简介及部署 linux | dns 配置文件中 search 和 options ndots 详解 kubernetes | command args 和 dockerfile 中的 ENTRYPOINT CMD kubernetes | statefulset 控制器详解 docker | dockerfile 最佳实践 docker | dockerfile 指令详解 linux | kill 命令详解以及 linux 中的信号 troubleshooting | elasticsearch 安装插件报错 shell | if 条件判断 docker | 下载外网镜像的几种方式 steam挂刀教程 linux | history 命令的格式化输出 shell | 将本地镜像批量推送到 harbor windows | hosts 文件修复 kubernetes | configmap & secret kubernetes | RBAC 鉴权和 NetworkPolicy kubernetes | service & ingress kubernetes | 存储 kubernetes | 滚动升级和自动伸缩 kubernetes | 控制器 kubernetes | 日志 kubernetes | 调度 kubernetes | pod kubernetes | 杂记 linux | set 命令详解 ceph | openeuler 部署 ceph-v16 ceph | ceph-v16 离线安装解决方案 pxe 如何应对复杂的服务器硬件环境 python | 批量修改目录下文件名 《微习惯》 ceph | openeuler (aarch64) 部署 ceph-v16 troubleshooting | glibc 误升级后修复 pxe 安装配置大全 《人间失格》 跑步日常 [置顶] Hello, hugo! shell | 检索某 url 中所有文件的内容 shell | 不同执行方式的区别 shell | 开启 debug 模式 vscode | 常见问题 windows & linux 多网卡时设置默认路由以及添加静态路由 mysql (二) 主从复制原理 GTID 并行复制 mysql (一) 部署 mysql | 杂记 cicd | jenkins 部署 mall-swarm 项目 httpd 源码打包编译成 rpm 包 openssl 源码打包编译成 rpm 包 centos7 | 修改网卡名称 ceph | pool pg_num 配置 docker | 脚本方式批量导出/导入镜像 centos 密码尝试次数过多问题处理 centos7 | 升级内核至 5.10 CVE-1999-0526 ceph | centos7 部署 ceph-v12 python | 修改 pip 源 troubleshooting | 安装 cloud-init 后导致 ssh 连接失败 windows | autohotkey 常用脚本
python | 鬼谷子数学问题
lvbibir · 2023-02-27 · via lvbibir's Blog

原题如下

鬼谷子随意从 2-99 中选取了两个数。他把这两个数的和告诉了庞涓, 把这两个数的乘积告诉了孙膑。但孙膑和庞涓彼此不知道对方得到的数。第二天, 庞涓很有自信的对孙膑说:虽然我不知道这两个数是什么,但我知道你一定也不知道。随后,孙膑说:那我知道了。庞涓说:那我也知道了。这两个数是什么?

代码示例

#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
第一步
庞告诉孙,已知和Sum满足有至少两种ab组合,且任意一组ab的乘积Pro都满足至少有两种ab组合,通过isPang函数将可能的ab组合放入abList_1
第二步
孙告诉庞,abList_1中的ab组合乘积得pro,该pro满足至少有两种ab组合,且所有的ab组合有且仅有一组ab组合满足isPang函数,通过isSun函数将abList中满足条件的ab组合放入abList_2,ab组合的积放入proList
第三步
庞告诉孙,abList_2中的ab组合相加得Sum,该Sum满足至少有两种ab组合,且所有的ab组合有且仅有一组ab所得乘积pro在proList中,将满足条件的ab组合放入abList,即最终答案
'''

# 根据给出的sum,遍历所有可能的a和b的组合
def getCombinationSum(sum):
    combination = []
    for a in range(2, 100):
        for b in range(2, 100):
            if a + b == sum and a <= b:
                combination.append((a, b))
    return combination


# 根据给出的pro,遍历所有可能的a和b的组合
def getCombinationPro(pro):
    combination = []
    for a in range(2, 100):
        for b in range(2, 100):
            if a * b == pro and a <= b:
                combination.append((a, b))
    return combination


def isPang(sum):
    '''
    第一步,传入的sum满足以下条件返回True,否则False:
    1. 可以拆分成若干组ab的加和
    2. 每一组拆分出来的ab乘积运算得pro,该pro满足有至少两组ab的乘积
    '''
    if len(getCombinationSum(sum)) < 2:
        return False
    else:
        combinationSum = getCombinationSum(sum)
        for i in combinationSum:
            status = 0
            pro = i[0] * i[1]
            # 有其中一组ab不满足就打断循环
            if len(getCombinationPro(pro)) < 2:
                status = 1
                break
    if status == 0:
        return True
    else:
        return False


def isSun(pro):
    '''
    第二步,传入的pro满足以下条件返回一组ab组合(元组),否则False
    1. 可以拆分成若干组ab的乘积
    2. 每一组拆分出来的ab相加运算得sum,所有ab加和的sum有且仅有一个满足第一步的条件(放入isPang函数后返回True)
    '''
    combination = []
    combinationPro = getCombinationPro(pro)
    if len(combinationPro) > 1:
        for i in combinationPro:
            sum = i[0] + i[1]
            if isPang(sum):
                combination.append(i)
    if len(combination) == 1:
        return combination
    else:
        return False


if __name__ == '__main__':

    # 第一步
    abList_1 = []
    for sum in range(4, 198+1):
        if isPang(sum):
            abList_1 += getCombinationSum(sum)

    # 第二步
    abList_2 = []
    proList = []
    for i in abList_1:
        pro = i[0] * i[1]
        if isSun(pro):
            abList_2.append(i)
            proList.append(pro)

    # 第三步
    abList = []
    for i in abList_2:
        sum = i[0] + i[1]
        n = 0
        for j in getCombinationSum(sum):
            if j[0] * j[1] in proList:
                n += 1
        if n == 1:
            abList.append(i)
    print(abList)

以上

wechat_pay

微信

alipay

支付宝