educoder:实验13 算法-穷举法和二分法

news2025/1/14 2:38:26

第1关:百钱百鸡

任务描述

我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?

相关知识

为了完成本关任务,你需要掌握:1.穷举法历数组。

穷举法

也称之为枚举算法、暴力破解法,就是按照问题本身的性质,一 一列举出该问题所有可能的解,并在列举的过程中,逐一检验每个可能解是否是问题的真正解。若是则采纳这个解;否则抛弃它。

编程要求

根据提示,在右侧编辑器编写代码,输出每种买法,及共几种买法。

测试说明

平台会对你编写的代码进行测试:

预期输出:

代码:

### 百钱百鸡 ###
q=0
for i in range(30):
    for x in range(50):
        a=(100-5*i-3*x)*3
        if 100-i-x==a:
            print('鸡翁的数量是{} 鸡母的数量是{} 鸡雏的数量是{}'.format(i,x,a))
            q=q+1
print('共有{}种买法'.format(q))

第2关:鸡兔同笼

任务描述

鸡兔同笼问题,是我国古代著名趣题之一。大约在1500年前,《孙子算经》中就记载了这个有趣的问题。书中是这样叙述的:“今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?” 这四句话的意思是:有若干只鸡兔同在一个笼子里,从上面数,有35个头;从下面数,有94只脚。求笼中各有几只鸡和兔?

本关任务:编写一个程序,能根据输入的鸡兔头数和脚数,计算鸡和兔子数。

编程要求

根据提示,在右侧编辑器补充代码,计算并输出鸡和兔子数。

测试说明

平台会对你编写的代码进行测试: 样例1 测试输入: 35 94 预期输出: 请输入总的头数 请输入总的脚数 鸡有23只 兔有12只

样例2: 测试输入: 51 31 预期输出: 请输入总的头数 请输入总的脚数 51只动物31条腿的情况无解


开始你的任务吧,祝你成功!

代码:

# -*- coding: utf-8 -*-
"""
Created on Thu Dec 10 08:19:29 2020
鸡兔同笼
@author: Admin
"""
print("请输入总的头数")
t = int(input())
print("请输入总的脚数")
j = int(input())
a=0
### Begin ###
if t<=0 or j<=0:
    print('{}只动物{}条腿的情况无解'.format(t,j))
else:
    for i in range(t+2):
        if j==2*i+4*(t-i):
            a=i
            break
    if i==t+1:
        print('{}只动物{}条腿的情况无解'.format(t,j))
    else:
        d=t-a
        print('鸡有{}只 兔有{}只'.format(a,d))
### End ###

第3关:读心术

任务描述

猜数字游戏:请编码实现一款经典的猜数字游戏。玩家先随机在 1-1000之间给出一个数字,让AI猜,如果猜的数大了,提示“大了”,反之,则提示“小了”。直到AI猜中为止。

相关知识

二分法的核心:每次都将解的搜索空间大小缩小为原先的一半。 二分查找的基本思想(列表先已经有序)

  1. 在列表A的区间i, j中查找x,其中i, j为索引。
  2. 考察区间中间的元素的值,y=A[(i+j)//2],若x==y,算法结束;若x<y,则x必定位于原区间的左半边即[i,(i+j)//2-1];若x>y,则x必定位于原区间的右半边,即[(i+j)//2+1,j]
  3. 在新的区间(原区间一半大小)中继续查找。
  4. 重复2、3的步骤,区间不断缩小直到找到
  5. 若直到区间无效时(i>j),还没找到x,则x不在A中。

编程要求

根据提示,在右侧编辑器补充guess(x,low,high)函数代码。其中,x为要猜测的随机数,low为猜测范围的下界,high为上界。函数体中采用二分法猜测数据,如果二分法生成的数比要猜的数大,提示“大了”,并调整数据范围;如果小于要猜的数,提示“小了”,也调整数据范围。再重新猜数,直到猜中为止。函数需要返回猜测的次数。

测试说明

平台会调用评测函数对你编写的代码进行测试:

测试输入:590 预期输出: 小了 大了 大了 小了 大了 小了 小了 小了 大了 恭喜你猜中了,共猜了9次,猜中数是590


开始你的任务吧,祝你成功!

代码:

def guess(x,low,high):
    '''AI猜数函数,猜测x的值
    low:数据x所在范围的下界
    high:数据x所在范围的上界
    返回猜测的次数
    '''
    ### Begin ###
    a=0
    while high-low>0:
        m=(low+high)//2
        if m>x:
            print('大了')
            high=m-1
            a=a+1
        elif m==x:
            break
        else:
            print('小了')
            low=m+1
            a=a+1
    return a
    ### End ###

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

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

相关文章

和ChatGPT大战多个回合,我知道了这些真相

最近&#xff0c;ChatGPT在国内外社交平台上可谓是火出圈了。作为一款人工智能语言模型&#xff0c;它可以和人类以对话的方式进行互动&#xff0c;比你早已熟知的Siri&#xff0c;小度还有小爱同学要更加智能与专业。因为它除了回答问题外还能进行创作&#xff0c;比如写小作文…

喜报 | Bonree ONE 2.0荣获信通院“2022IT新治理年度明星产品”

近日&#xff0c;由信通院“GOLFIT新治理领导力论坛”评选的2022IT新治理年度明星产品重磅出炉&#xff0c;博睿数据一体化智能可观测平台Bonree ONE 2.0凭借卓越的产品力以及优秀的用户体验&#xff0c;从一众产品中脱颖而出&#xff0c;获得“2022IT新治理年度明星产品”。 …

第06讲:Security在前后端分离项目中的综合应用

一、基本业务开发 1.1、需求分析 由于Security对用户进行鉴权和授权是通过用户名去数据库中取权限&#xff0c;所以我们需要开发一个功能&#xff0c;这个功能就是通过username去数据库里查该用户所具备的所有权限 1.2、完成需求 1.2.1、数据库脚本 请下载文章末尾的源代码…

JavaScript高级 |深入闭包

本文已收录于专栏⭐️ 《JavaScript》⭐️ 学习指南&#xff1a;闭包基本概念内存管理垃圾回收GC算法-标记清除GC算法-标记整理GC算法-分代收集GC算法-增量收集GC算法-闲时收集内存泄露完结散花参考文献闭包 闭包是JavaScript中非常容易让人迷惑的知识点。 《在你不知道的Java…

灯泡与影子(三分)

题目描述: 有一天&#xff0c;小明发现他的影子长度随着他在灯泡和墙壁之间走动时会发生变化&#xff0c;一个突发奇想在他的脑海里闪过&#xff0c;他现在想知道他来回走动&#xff0c;他的影子的最大长度是多少&#xff1f; 输入格式: 第一行包含一个整数T (T < 100),表…

C语言 常用标准库函数代码实现

一、内存 1. memcpy函数 memcpy 函数用于 把资源内存&#xff08;src所指向的内存区域&#xff09; 拷贝到目标内存&#xff08;dest所指向的内存区域&#xff09;&#xff1b;拷贝多少个&#xff1f;有一个size变量控制拷贝的字节数&#xff1b; 函数原型&#xff1a;void …

网络工程毕业设计 SSM汽车租赁系统(源码+论文)

文章目录1 项目简介2 实现效果2.1 界面展示3 设计方案3.1 概述3.2 系统流程3.3 系统结构设计4 项目获取1 项目简介 Hi&#xff0c;各位同学好呀&#xff0c;这里是M学姐&#xff01; 今天向大家分享一个今年(2022)最新完成的毕业设计项目作品&#xff0c;【基于SSM的汽车租赁…

mitmproxy 抓包神器-2.抓取Android 和 iOS 手机 https 请求

前言 抓取手机请求的前提条件是确保手机和电脑在同一网段上&#xff0c;也就是说使用同一WiFi。 启动服务 mitmweb 命令启动服务&#xff0c;默认监听8080端口 (venv) D:\demo\mitmproxy_xuexi>mitmweb [11:59:49.361] HTTP(S) proxy listening at *:8080. [11:59:49.36…

linux redhat8.0 权限管理

在linux里面&#xff0c;一切皆文件&#xff0c;不同的用户对文件有不同的管理权限&#xff0c;而只有root用户能为其他用户分配权限。 读&#xff08;r&#xff09;写&#xff08;w&#xff09;执行&#xff08;x&#xff09;数字表示421文件&#xff08;默认644&#xff09;…

SpringBoot-OneDay

优势 创建独立的spring程序自动配置spring简化的maven配置内嵌tomcat提供生产就绪型功能&#xff0c;如指标&#xff0c;健康检查和外部配置特性 为基于Spring 的开发提供更快的入门体验 开箱即用&#xff0c;没有代码生成&#xff0c;也无需XML 配置。同时也可以修改默认值来…

【从零开始学习深度学习】28.卷积神经网络之NiN模型介绍及其Pytorch实现【含完整代码】

目录1. NiN块介绍2. 构建NiN模型3.NIN模型每层输出形状4. 获取Fashion-MNIST数据和训练NiN模型5. 总结前几篇文章介绍的LeNet、AlexNet和VGG在设计上的共同之处是&#xff1a;先以由卷积层构成的模块充分抽取空间特征&#xff0c;再以由全连接层构成的模块来输出分类结果。其中…

RocketMQ基本概念及功能

文章目录背景架构模型NameServer 名字服务器Broker 代理服务器生产者主题队列消息消息标签消息位点消费者消费位点消费者分组订阅关系参考文章背景 RocketMQ是阿里巴巴在2012年开发的分布式消息中间件&#xff0c;专为万亿级超大规模的消息处理而设计&#xff0c;具有高吞吐量…

【VScode插件开发】<二>插件实践开发+发布

开发环境配置完&#xff0c;就得好好琢磨开发内容了&#xff0c;不能老停留在hello world上呀&#xff01; 一、开发文档结构分析 1.Package.json {"name": "kidtest","displayName": "KidTest","description": "for…

Gnoppix Linux系统发布

导读基于 Kali Linux 的 Linux 滚动发行版 Gnoppix 22.12 带来了 GNOME 43、Linux 内核 6.0 和新的升级。作为传统的现场 CD 发行版 Knoppix 项目的继承者&#xff0c;​​Gnoppix Linux​​ 是专门为渗透测试和反向工程而设计的。它为网页应用安全和数字权利保护进行了优化。除…

Java也可以轻松编写并发程序

如今&#xff0c;多核处理器在服务器&#xff0c;台式机及笔记本电脑上已经很普遍了&#xff0c;同时也被应用在更小的设备上&#xff0c;比如智能手机和平板电脑。这就开启了并发编程新的潜力&#xff0c;因为多个线程可以在多个内核上并发执行。在应用中要实现最大性能的一个…

SpringBoot+Vue实现前后端分离的小而学在线考试系统

文末获取源码 开发语言&#xff1a;Java 使用框架&#xff1a;spring boot 前端技术&#xff1a;JavaScript、Vue.js 、css3 开发工具&#xff1a;IDEA/MyEclipse/Eclipse、Visual Studio Code 数据库&#xff1a;MySQL 5.7/8.0 数据库管理工具&#xff1a;phpstudy/Navicat JD…

访问者模式(Visitor)

参考&#xff1a; 模板方法设计模式 (refactoringguru.cn) design-patterns-cpp/TemplateMethod.cpp at master JakubVojvoda/design-patterns-cpp GitHubhttps://github.com/JakubVojvoda/design-patterns-cpp/blob/master/state/State.cpp) 文章目录一、什么是访问者模式…

【Python机器学习】Sklearn库中Kmeans类、超参数K值确定、特征归一化的讲解(图文解释)

一、局部最优解 采用随机产生初始簇中心 的方法&#xff0c;可能会出现运行 结果不一致的情况。这是 因为不同的初始簇中心使 得算法可能收敛到不同的 局部极小值。 不能收敛到全局最小值&#xff0c;是最优化计算中常常遇到的问题。有一类称为凸优化的优化计算&#xff0c;不…

数字货币市场风暴肆虐,币圈人应该把握哪些新的赛道机遇

11月11日&#xff08;周五&#xff09;美股盘前&#xff0c;曾经为全球第二大加密货币交易所FTX在推特发布了申请破产保护的声明&#xff0c;创始人SBF已经辞去CEO职务。据声明&#xff0c;FTX已经任命John J. Ray III 担任CEO&#xff0c;SBF还将协助相关破产事宜。据FTX在推特…

[附源码]Python计算机毕业设计Django面向高校活动聚App

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…