python汉诺塔估计CPU

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: Jia ShiLin
'''
汉诺塔:::
list1,list2,list3三个数组代表三个柱子和圆盘
数字的大小代表圆盘的大小!
数字的顺序代表圆盘的顺序
'''
import time
import datetime


# 汉诺塔函数
def h(n, x_list, y_list, z_list, x, y, z):
    global count
    if (n == 1):
        count += 1
        print('%s->%s' % (x, z))
        try:
            tt = x_list.pop(0)
            z_list.insert(0, tt)
        except:
            pass
        print(list1, '################', list2, '################', list3)
    else:
        # h(x_list.pop(),x, z_list.append(x_list.pop()) ,x,z,y)
        h(n - 1, x_list, z_list, y_list, x, z, y)

        print('%s->%s' % (x, z))
        try:
            t = x_list.pop(0)
            z_list.insert(0, t)
            count += 1
        except:
            pass
        print(list1, '################', list2, '################', list3)
        h(n - 1, y_list, x_list, z_list, y, x, z)
    return count


# def cpu()

count = 0  # 移动步数
num = 21  # int(input('输入汉诺塔个数N')) #圆盘初始个数
start_time = datetime.datetime.now()  # 开始计时
# 三个柱子和圆盘
list1 = list(range(1, num + 1))
list2 = []
list3 = []
# 初始状态打印
print('初始值')
print(list1, '################', list2, '################', list3)

# 调用h()
h(num, list1, list2, list3, 'x', 'y', 'z')

print('总共移动步数:%d' % count)
end_time = datetime.datetime.now()  # 结束计时
print(start_time)
print(end_time)
# 时间差,单位秒
difference_time = (end_time - start_time).total_seconds()
print(difference_time)
percent = (35 / (difference_time + 25)) * 100

print('您的CPU跑分为:%.2f' % (percent))
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贾世林jiashilin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值