一个数学问题的Python解决方法

Posted yueluhun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个数学问题的Python解决方法相关的知识,希望对你有一定的参考价值。

一个正整数n。
它是由数字3和7组成,且这个数以及这个数
各位数字之和都是3和7的倍数,求n的最小值
要有过程。

 

# coding=utf-8
import numpy as np
x_num = 1
while True:
    x_str = str(x_num)       #数字转换为字符
    x_str_list = list(x_str)    #为将元组转换为列表
    x_str_len = len(x_str_list) #列表元素个数
    x_com=x_num     #为了后续是否因为不满足条件而到导致数字继续推后
    x_str_list_num= map(int, x_str_list)    #将字符数组转化为数字数组
    sum_x=np.sum(x_str_list_num)            #对一位数组进行求和
    for word in x_str_list:                 #字符串字符依次提取
        if ((int(word)==3 or int(word)==7) and (x_num%21==0) and (sum_x%21==0) and (3 in x_str_list) and (7 in x_str_list)):
            #该数字必须含有3和7,且这个书是21的倍数,且各个位数之和为3和7的倍数
            continue        #继续本循环
        else:
            x_num = x_num + 21  #如果不满足条件的话,数字后移
            break           #跳出最近的一个循环
    if x_com==x_num:        #如果满足要求,即上一个for循环正常结束,跳出while循环
        break
    else:
        print(x_num)
        continue            #如果条件不满足,继续while循环

print(x_num)
结果是:3333377733
计算效率有待提升

以上是关于一个数学问题的Python解决方法的主要内容,如果未能解决你的问题,请参考以下文章

算法研究:利用Python解决数学计数原理问题

if/while/for 解决数学难题 Python实例

Python小白的数学建模课-12.非线性规划

Python小白的数学建模课-12.非线性规划

Python小白的数学建模课-20.网络流优化案例

运用形式逻辑去分析解决问题的方法