A Simple Math Problem矩阵快速幂)

本文介绍了一种利用矩阵快速幂解决特定数列求值问题的方法。通过定义特定矩阵结构和运算方式,实现了对数列第n项高效计算,并提供了完整的C++代码实现。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<algorithm>
#include<map>
#include<queue>
#include<math.h>
#include<vector>
#include<iostream>
using namespace std;
typedef long long ll;
int b[11];
int kk,n,mod;
struct node
{
    int a[11][11];
    node()
    {
        memset(a,0,sizeof(a));
    }
}A,B;
node operator *(node a,node b)
{
    node ans;
    for(int i=1;i<=10;i++)
     for(int j=1;j<=10;j++)
        for(int k=1;k<=10;k++)
          ans.a[i][j]=((ans.a[i][j]+a.a[i][k]*b.a[k][j])%mod+mod)%mod;
     return ans;
}
int aa(int n)
{
    node ans=A,k=B;
    while(n)
    {
        if(n&1)
            ans=ans*k;
        k=k*k;
        n=n/2;
    }
    return  (ans.a[1][1]%mod+mod)%mod;
}
int main()
{
    while(~scanf("%d%d",&kk,&mod))
    {
        for(int i=1;i<=10;i++)
            scanf("%d",&b[i]);
        for(int i=1;i<=10;i++)
          A.a[1][i]=10-i;
       for(int i=1;i<=10;i++)
       {
           if(i==1)
           {
           for(int j=1;j<=10;j++)
                B.a[j][i]=b[j];
           }
           else
            B.a[i-1][i]=1;
       }
       if(kk<10)
           cout<<(kk%mod+mod)%mod<<endl;
       else
            cout<<aa(kk-9)<<endl;
    }
}
Comfy UI 是一个基于节点的图形用户界面,常用于图像生成模型(如 Stable Diffusion)的定制化流程构建。它允许用户通过连接各种节点来创建复杂的图像生成工作流。其中,Simple Math 节点是 Comfy UI 提供的一个基础数学运算工具,用于在节点图中执行简单的数学计算。 ### 使用 Simple Math 节点的基本方法 1. **添加节点** 在 Comfy UI 的节点编辑器中,按下 `Ctrl + A` 或点击画布空白处并选择“Add Node”,在搜索框中输入“Simple Math”来添加该节点。 2. **配置运算类型** Simple Math 节点支持多种基本数学运算,包括加法、减法、乘法、除法等。在节点的下拉菜单中选择所需的运算类型。例如,选择“Add”进行加法运算。 3. **连接输入值** 该节点通常有两个输入端口,分别用于接收操作数。可以将其他节点的输出(如整数或浮点数节点)连接到这些输入端口。 4. **获取运算结果** 运算结果将通过节点的输出端口提供,可以将其连接到后续节点以进行进一步处理。 ### 示例:加法运算 以下是一个简单的示例,展示如何使用 Simple Math 节点执行加法运算: ```python # 假设两个输入值分别为 5 和 3 # Simple Math 节点设置为 "Add" 模式 result = 5 + 3 # 输出结果为 8 ``` ### 高级用法 - **嵌套运算** 可以通过连接多个 Simple Math 节点来构建更复杂的数学表达式。例如,先进行加法运算,再进行乘法运算。 - **动态输入** Simple Math 节点可以与其他节点(如滑块节点或文本输入节点)结合使用,以实现动态输入值的调整。 - **条件运算** 结合逻辑判断节点,可以实现基于条件的数学运算,例如根据某个条件选择不同的运算方式。 ### 注意事项 - **数据类型** Simple Math 节点通常处理数值型数据(如整数或浮点数)。确保输入值的数据类型与节点要求一致,否则可能导致错误。 - **精度问题** 在进行除法运算时,需注意浮点数精度问题,避免因精度丢失而导致计算结果不准确。 - **性能优化** 如果工作流中涉及大量数学运算,建议合理组织节点结构,减少不必要的节点连接,以提高整体性能。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值