poh 2159 Ancient Cipher

本文介绍了一种简单的算法,用于判断通过凯撒密码和字符序列变换后的一个字符串(str1)是否能变为另一个字符串(str2)。该算法通过对两个字符串的字符频率进行排序比较来实现。

题意有点不好读,第一种是凯撒密码,第二种是改变字符的序列,这2种方式同时使用,判断str1能否转换为str2,看起来好像感觉很难的样子,其实很简单,我也不好说,直接看代码吧。

#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int main(void)
{
    int num1[26],num2[26];
    char str[101];
    scanf("%s",str);
    int len = strlen(str);
    memset(num1,0,sizeof(num1));
    memset(num2,0,sizeof(num2));
    for(int i=0;i<len;++i)
    {
     num1[str[i]-'A']++;
    }
    scanf("%s",str);
    len = strlen(str);
    for(int i=0;i<len;++i)
    {
     num2[str[i]-'A']++;
    }
    bool flag = false;
    sort(num1,num1+26);
    sort(num2,num2+26);
    for(int i=0;i<26&&!flag;++i)
    {
        if(num1[i]!=num2[i])
        {
            flag = true;
        }
    }
    if(flag)
    {
        cout<<"NO"<<endl;
    }
    else
        cout<<"YES"<<endl;
    return 0;
}



### poh3213 矩阵乘法实现方法解释 #### 定义矩阵乘法规则 矩阵乘法是指两个矩阵之间的运算,其中第一个矩阵的列数必须等于第二个矩阵的行数。对于给定的 \( m \times n \) 和 \( n \times p \) 的两个矩阵 A 和 B,它们相乘的结果是一个 \( m \times p \) 的新矩阵 C。 每个元素 \( c_{ij} \) 是通过计算矩阵 A 中第 i 行与矩阵 B 中第 j 列对应位置元素的乘积之和来获得的[^1]。 #### Python 实现矩阵乘法 下面展示了一个简单的 Python 函数用于执行矩阵乘法: ```python def matrix_multiply(A, B): result = [] # 获取输入矩阵尺寸 rows_A = len(A) cols_A = len(A[0]) rows_B = len(B) cols_B = len(B[0]) if cols_A != rows_B: raise ValueError("Matrix dimensions do not match") # 初始化结果矩阵为零矩阵 for _ in range(rows_A): row = [0] * cols_B result.append(row) # 执行矩阵乘法操作 for i in range(rows_A): for j in range(cols_B): sum_product = 0 for k in range(cols_A): # 或者rows_B sum_product += A[i][k] * B[k][j] result[i][j] = sum_product return result ``` 此代码片段定义了一个名为 `matrix_multiply` 的函数,该函数接受两个参数 A 和 B 并返回其乘积。如果尝试将不兼容大小的矩阵相乘,则会抛出异常提示错误。 #### 使用 TensorFlow 进行矩阵乘法 TensorFlow 提供了一种更高效的方式来处理张量(多维数组),包括矩阵乘法在内的各种线性代数运算。这里给出一个使用 TensorFlow 来完成相同任务的例子: ```python import tensorflow as tf # 创建两个常量张量表示要相乘的矩阵 A_tf = tf.constant([[1., 2.], [3., 4.]]) B_tf = tf.constant([[5., 6.], [7., 8.]]) # 计算这两个矩阵的乘积 result_tensorflow = tf.matmul(A_tf, B_tf) print(result_tensorflow.numpy()) ``` 这段代码展示了如何利用 TensorFlow 库中的 matmul() 方法来进行高效的矩阵乘法运算,并打印最终的结果[^2].
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值