第1关:百钱百鸡

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

### 百钱百鸡 ###
n=100
c=0
for i in range(0,int(n/5)):
    for j in range(0,int(n/3)):
        if i*5+j*3+int((n-j-i)/3)==n and (n-j-i)%3==0:
            c+=1
            print('鸡翁的数量是{} 鸡母的数量是{} 鸡雏的数量是{}'.format(i,j,n-i-j))
print('共有{}种买法'.format(c))

第2关:鸡兔同笼

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

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

# -*- coding: utf-8 -*-
"""
Created on Thu Dec 10 08:19:29 2020
鸡兔同笼
@author: Admin
"""
print("请输入总的头数")
heads = int(input())
print("请输入总的脚数")
legs = int(input())
### Begin ###
if heads**2<legs**2:
    for i in range(0,heads):
        if 2*i+4*(heads-i)==legs:
            print('鸡有{}只 兔有{}只'.format(i,heads-i))
elif heads**2>legs**2:
    print('{}只动物{}条腿的情况无解'.format(heads,legs))
### 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中。
ef guess(x,low,high):
    '''AI猜数函数,猜测x的值
    low:数据x所在范围的下界
    high:数据x所在范围的上界
    返回猜测的次数
    '''
    ### Begin ###
    c=0
    while high>=low:
        mid=(high+low)//2
        if mid==x:
            return c
        elif mid>x:
            high=mid-1
            print('大了')
        else:
            low=mid+1
            print('小了')
        c+=1
    ### End ###

求求三连啦。。。

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐