• Python科学计算系列10—数论


    1.常用操作

    代码如下:

    # coding=utf-8
    from sympy import *
    from sympy.ntheory.modular import solve_congruence, crt
    
    # 阶乘
    # 例:求5的阶乘
    print(factorial(5))
    # 分解质因数
    # 例:将300分解质因数
    print(factorint(300, visual=True))
    # 欧拉函数
    # 例:求Ψ(25)的值
    print(totient(25))
    # 判断是否质数
    # 例:求2^17-1是否为质数
    print(isprime(2 ** 17 - 1))
    # 莫比乌斯函数
    print(mobius(13 * 17 * 5))
    # 求因子
    print(divisors(36))
    # 解同余方程
    # 例:今有一数,除3余2,除5余3,除7余2,问该数几何?
    # 第一个数为余数,第二个数为模数
    # 方法1
    print(solve_congruence((2, 3), (3, 5), (2, 7)))
    # 方法2
    # 前三个数为模数,后三个为余数
    print(crt([3, 5, 7], [2, 3, 2]))
    # 求离散对数(7^3mod15=41)
    print(discrete_log(41, 15, 7))

    运行结果:

    2.求可以尺规作图的正n边形(n<100)

    代码如下:

    a = []
    for i in range(1, 101):
        if isprime(2 ** i - 1):
            a.append(i)
    print(a)

    运行结果:

    [2, 3, 5, 7, 13, 17, 19, 31, 61, 89]

    3.函数简介

    欧拉函数φ(n)

    定义:φ(n)表示不超过n且与n互素的正整数的个数

    计算公式

    例:φ(25)=25(1-1/5)=20

    莫比乌斯函数μ(n)

    定义如下:

    例:μ(5*11*13)=(-1)^3=-1

  • 相关阅读:
    Js 之xterm.js终端插件
    Mysql 之获取和修改注释
    Js 之codemirror文本编辑器
    Apicloud 之视频播放项目实战
    PHP 之极验验证插件
    PHP 之CI框架+GatewayWorker+AmazeUI仿微信聊天网页版
    PHP 之Html标签转义与反转义
    关于Vue中props的详解
    css特效之旋转音乐播放器
    微信小程序获取地理位置
  • 原文地址:https://www.cnblogs.com/wanyuan/p/13210136.html
Copyright © 2020-2023  润新知