python 算法4个数按照随机四则运算算出结果为24的值

网友投稿 574 2022-10-11

python 算法4个数按照随机四则运算算出结果为24的值

python 算法4个数按照随机四则运算算出结果为24的值

#!/usr/bin/env python3# -*- coding: utf-8 -*-"""@author: @version: 1.0.0@file: test_24.py@time: 2021/1/22 上午9:04@desc: 输入的4个数据,用加减乘除运算符来计算出能够凑出24"""from pprint import pprintfrom itertools import permutations, combinationsimport operatorfrom copy import deepcopydef func(*args): list_operate = ['+', '-', '*', '/'] for op1 in list_operate: for op2 in list_operate: for op3 in list_operate: # print(op3) list_calc = [args[0], op1, args[1], op2, args[2], op3, args[3]] res = recall_clac_list(deepcopy(list_calc)) # print(res) if res == 24: # print(list_calc) # print(''.join([str(i) for i in list_calc])) return ''.join([str(i) for i in list_calc])def recall_clac_list(list_calc): if '*' in list_calc or '/' in list_calc: for index, value in enumerate(list_calc): if value in ['*', '/']: calc_value = calc(value, list_calc[index - 1], list_calc[index + 1]) list_calc2 = list_calc [list_calc2.pop(index - 1) for i in range(3)] list_calc2.insert(index - 1, calc_value) # 指针会超出 if len(list_calc2) == 1: return list_calc2[0] return recall_clac_list(list_calc2) else: for index, value in enumerate(list_calc): if value in ['+', '-']: calc_value = calc(value, list_calc[index - 1], list_calc[index + 1]) list_calc2 = list_calc [list_calc2.pop(index - 1) for i in range(3)] list_calc2.insert(index - 1, calc_value) # 指针会超出 if len(list_calc2) == 1: return list_calc2[0] return recall_clac_list(list_calc2)def calc(operation, v1, v2): return get_operate_method(operation)(v1, v2)def get_operate_method(operation): dict_operator = { '+': operator.add, '-': operator.sub, '*': operator.mul, '/': operator.truediv } return dict_operator.get(operation)def main(): """ 测试对列表操作后循环是否会受到影响 :return: """ # list1 = [i for i in range(10)] # for index, value in enumerate(list1): # print(index, value) # print(list1) # list1.pop(0) # list_value = [1, 2, 6, 9] res = permutations(list_value, 4) for i in res: res = func(*i) print(res)if __name__ == '__main__': main()

懂得,原来世界如此简单!

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:wxStar是在小程序中实现评分/评星效果
下一篇:IT之家小程序版客户端(使用 Mpvue 开发)(小程序之家app)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~