python简单实验

本文介绍了使用Python解决一系列数学问题,包括汉诺塔、跳楼梯、水仙花数、验证整数性质、数字拼接问题,以及质数计算等。通过递归、动态规划和循环等编程技巧,展示了Python在解决数学谜题中的应用。
摘要由CSDN通过智能技术生成

一、汉诺塔问题

  1. 解题
    1. 汉诺塔问题原理
      1. 汉诺塔问题是一个经典的数学谜题,给定三根柱子和一些不同大小的圆盘,目标是将所有圆盘从一根柱子上移动到另一根柱子上,同事要保持圆盘的顺序不变。在移动过程中,只能使用以下规则:

        1. 每次只能移动一个圆盘。
        2. 每根柱子上的圆盘必须按照从大到小的顺序摆放,且大圆盘不能放在小圆盘上面。
        3. 只能将圆盘移到空柱子或者比它大的圆盘上。
      2. 这个问题源自传说中的印度民间故事:在一个寺庙里,有三根针和64个大小不同的金盘。神预言,当所有的盘子都从一根针上转移到另一根针上时,世界将毁灭。所以这个问题也以汉诺塔(Hanoi Tower)命名。

  2. Python代码

    1. def yidong(n):
      	if  n == 1:
      		return 1
      	else:
      		return 2 * yidong(n-1)+1
      
      
      
      n = int(input("移动块数:"))
      a = yidong(n)
      
      print("移动步骤:%s" %a)
      
      input()

3.实现结果

 

二、跳楼梯问题

  1. 解题
    1. 跳楼梯问题是一个经典的递归和动态规划问题。它的基本思想是,假设你站在一座楼梯前,这座楼梯有n个台阶。每次你可以选择跨1个台阶或者2个台阶跳下楼梯。问到达楼梯的顶部有多少种不同的方法。
      1. 如果你选择跨1个台阶,那么剩下的台阶数变为n-1,我们可以递归地计算从n-1个台阶跳到顶部的方法数。
      2. 如果你选择跨2个台阶,那么剩下的台阶数变为n-2,我们可以递归地计算从n-2个台阶跳到顶部的方法数。
  2. 递归公式:f(n) = f(n-1) + f(n-2),其中f(n)表示从第n个台阶跳到顶部的方法数。
  3. Python代码
    1. def louti(n):
      	if n == 1:
      		return 1
      	elif n== 2:
      		return 2
      
      	else :
      		return louti(n-1) + louti(n-2)
      
      n = int(input("请输入要上去的楼梯数量:"))
      a = louti(n)
      
      
      print("需要走的步骤有:%s" %a)<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值