梦开始的地方(Dream)

英文题面:

题目出处:Vjudge
Freshmen frequently make an error in computing the power of a sum of real numbers, which usually origins from an incorrect equation ( m + n ) p = m p + n p (m+n)^p = m ^p + n ^ p (m+n)p=mp+np
, where m, n, pm,n,p are real numbers. Let’s call it ``Beginner’s Dream’'.

For instance, ( 1 + 4 ) 2 = 5 2 = 25 (1+4)^2 = 5^2 = 25 (1+4)2=52=25 but 1 2 + 4 2 = 17 ≠ 25 1^2 + 4 ^2 = 17 \ne 25 12+42=17=25
Moreover, 9 + 16 = 25 = 5 \sqrt{9+16}=\sqrt{25}=5 9+16 ​=25 ​=5 which does not equal 3 + 4 = 7 3+4=7 3+4=7.
Fortunately, in some cases when pp is a prime, the identity
( m + n ) p = m p + n p (m+n)^p = m^p + n^p (m+n)p=mp+np
holds true for every pair of non-negative integers m, nm,n which are less than pp, with appropriate definitions of addition and multiplication.

You are required to redefine the rules of addition and multiplication so as to make the beginner’s dream realized.

Specifically, you need to create your custom addition and multiplication, so that when making calculation with your rules the equation ( m + n ) p = m p + n p (m+n)^p=m^p+n^p (m+n)p=mp+np is a valid identity for all non-negative integers m,nm,n less than pp. Power is defined as
a p = { 1 , p = 0 a p − 1 ⋅ a , p > 0 a^p = \left\{ \begin{array}{ll} 1, & p = 0 \\ a^{p-1} \cdot a, & p > 0 \end{array} \right. ap={1,ap−1⋅a,​p=0p>0​

Obviously there exists an extremely simple solution that makes all operation just produce zero. So an extra constraint should be satisfied that there exists an integer q:(0 < q < p)q(0<q<p) to make the set { q k ∣ 0 < k < p , k ∈ Z } q k ∣ 0 < k < p , k ∈ Z e q u a l t o { k ∣ 0 < k < p , k ∈ Z } k ∣ 0 < k < p , k ∈ Z . \{ q^k \,|\, 0 < k < p, k \in \mathbb{Z} \}{q^k ∣0<k<p,k∈Z} equal \ to \{k\,|\,0<k<p,k \in \mathbb{Z}\}{k∣0<k<p,k∈Z}. {qk∣0<k<p,k∈Z}qk∣0<k<p,k∈Zequal to{k∣0<k<p,k∈Z}k∣0<k<p,k∈Z. What’s more, the set of non-negative integers less than pp ought to be closed under the operation of your definitions.

描述

祥祥经常在计算实数和的幂时犯错误,这通常源于一个错误的等式 ( m + n ) p = m p + n p (m+n)^p=m^p+n^p (m+n)p=mp+np,其中 m , n , p m,n,p m,n,p 是实数。我们把它称为“祥祥的梦想”。

例如 ( 1 + 4 ) 2 = 5 2 = 25 ≠ 1 2 + 4 2 (1+4)^2 = 5^2=25\neq 1^2 + 4^2 (1+4)2=52=25=12+42 ,又如 9 + 16 = 25 = 5 ≠ 3 + 4 \sqrt{9 + 16} = \sqrt{25} = 5 \neq 3 + 4 9+16 ​=25 ​=5=3+4 .

幸运的是,在一些情况下,当 p p p 是质数的时候,如果重新定义加法、乘法,等式 ( m + n ) p = m p + n p (m+n)^p=m^p+n^p (m+n)p=mp+np 对于任何小于 p p p 的非负整数 m , n m,n m,n 都成立。

你需要重新定义加法和乘法,来实现祥祥的梦想。

更具体的说,你需要重新定义加法和乘法来使得等式 ( m + n ) p = m p + n p (m+n)^p=m^p+n^p (m+n)p=mp+np 对于任何小于 p p p 的非负整数 m , n m,n m,n 都成立。下面是幂的定义:
a p = { 1 , p = 0 a p − 1 ⋅ a , p > 0 a^p = \left\{ \begin{array}{ll} 1, & p = 0 \\ a^{p-1} \cdot a, & p > 0 \end{array} \right. ap={1,ap−1⋅a,​p=0p>0​

显然,这里存在一个非常极端的解,就是让所有的运算结果都是 0 0 0 ,为了避免这种情况,你需要让你的解满足:存在一个正整数$ q (0 < q < p)$ 使得集合 { q k ∣ 0 < k < p , k ∈ Z } \{q^k|0<k<p, k\in \mathbb{Z}\} {qk∣0<k<p,k∈Z} 和集合 { k ∣ 0 < k < p , k ∈ Z } \{k|0<k<p, k\in \mathbb{Z}\} {k∣0<k<p,k∈Z} 相等。

注意,你定义的运算需要让小于 p p p 的非负整数集对其封闭。

输入描述

输入占一行,是一个正质数 p p p ,意义见上述内容。

输出描述

输出占 2 p 2p 2p 行,每行是 p p p 个整数。

第 i i i 行( 1 ≤ i ≤ p 1\leq i\leq p 1≤i≤p)的第 j j j 个( 1 ≤ j ≤ p 1\leq j\leq p 1≤j≤p)整数表示 ( i − 1 ) + ( j − 1 ) (i-1)+(j-1) (i−1)+(j−1) 的值。第 ( p + i ) (p+i) (p+i) 行( 1 ≤ i ≤ p 1\leq i\leq p 1≤i≤p)的第 j j j 个( 1 ≤ j ≤ p 1\leq j\leq p 1≤j≤p)整数表示 ( i − 1 ) ⋅ ( j − 1 ) (i-1)\cdot(j-1) (i−1)⋅(j−1) 的值。

提示

0 < p < 2 10 0 < p < 2^{10} 0<p<210

样例

样例输入

2

样例输出

0 1
1 0
0 0
0 1

题解代码

  1. 题目的所有条件都满足模p剩余域(即模P剩余系)的条件
    证明:
    首先,题目中的 ( m + n ) p = m p + n p ( p ∈ 素数 ) (m + n)^p = m^p + n^p(p \in 素数) (m+n)p=mp+np(p∈素数),要满足一个条件,即:
    ( m + n ) p ≡ m p + n p ( m o d p ) (m + n) ^p \equiv m^p + n^p \pmod{p} (m+n)p≡mp+np(modp)
    将二项式展开,得到:
    ( m + n ) p = ∑ i = 0 p ( p i ) m n − i n i ≡ m p + n p ( m o d p ) (m + n) ^p = \sum_{i = 0}^{p} \dbinom{p}{i} m^{n - i}n^i \equiv m^p + n^p \pmod{p} (m+n)p=i=0∑p​(ip​)mn−ini≡mp+np(modp)
    同时,在模P剩余系 ( p ∈ 素数 ) (p \in 素数) (p∈素数)中, ( p k ) ≡ 0 ( m o d p ) \dbinom{p}{k} \equiv 0 \pmod{p} (kp​)≡0(modp)
    简单的证明一下:
    首先: ( p k ) = p ! k ! ( p − k ) ! \dbinom{p}{k} = \frac{p!}{k!(p-k)!} (kp​)=k!(p−k)!p!​
    ∴ 原式 = ∏ i = p p − k + 1 i k ! \therefore 原式 = \frac{\prod_{i = p}^{p - k + 1} i}{k!} ∴原式=k!∏i=pp−k+1​i​
    ∵ k ∈ 模 p 剩余系 \because k \in 模p剩余系 ∵k∈模p剩余系
    k 模 p 的逆元也 ∈ 模 p 剩余系 k模p 的逆元也 \in 模p剩余系 k模p的逆元也∈模p剩余系
    注:逆元
    ∴ ∏ i = p p − k + 1 i k ! = ∏ i = p p − k + 1 i × ∏ i = k 1 k 模 p 的逆元 ≡ 0 ( m o d p ) \therefore \frac{\prod_{i = p}^{p - k + 1} i}{k!} = \prod_{i = p}^{p - k + 1} i \times \prod_{i = k}^{1}k模p的逆元 \equiv 0 \pmod{p} ∴k!∏i=pp−k+1​i​=i=p∏p−k+1​i×i=k∏1​k模p的逆元≡0(modp)
    证毕。
    所以,一切只要按模P剩余系的加乘来就好了(即正常 R R R内的加乘)。
    代码:
#include <bits/stdc++.h>
using namespace std;
const int N = 5e5 + 5;
const int M = 1005;
typedef long long ll;
signed main(){int p;scanf("%d",&p);for(int i = 1 ; i <= p ; i ++) {for (int j = 1 ; j <= p ; j ++) {printf("%d " , ((i - 1) + (j - 1)) % p) % p;}printf("\n");}for (int i = 1 ; i <= p ; i ++) {for (int j = 1 ; j <= p ; j ++) {printf("%d " , ((i - 1) % p * (j - 1) % p) %p);}printf("\n");}return 0;
}

梦开始的地方(Dream)相关推荐

  1. 32位汇编语言helloworld_梦开始的地方——Hello World!

    Hello World " 对很多人来说,每当学习一门新的编程语言,写下的第一行代码可能都是"Hello,World!".因此,"Hello,World!&qu ...

  2. 大道至简,回归到梦开始的地方。人生如此,编程亦如此。

    博客园的一篇新闻<程序员的回归式进化>,该新闻非常有意思,展示了同一段"Hello World"代码,一个1年编程经验.一个2年编程经验.一个3年编程经验.一个5年编程 ...

  3. 寒冷的高纬度——我的梦开始的地方

                  寒冷的高纬度--我的梦开始的地方                               迟子建 从中国的版图上看,我的出生地--漠河居于最北端,大约在北纬53度左右的 ...

  4. 力扣-两数之和 (梦开始的地方)

    力扣-两数之和(梦开始的地方) 来源:力扣网 https://leetcode.cn/problems/two-sum/ 题目 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组 ...

  5. 初始C语言——梦开始的地方

    目录 前言 正文 #include # include<> stdio.h int main( ) int main( ) { } printf("Hello Word!\n&q ...

  6. Python爬虫、数据分析、可视化学习笔记(一、梦开始的地方)

    系列文章持续更新中...... 文章目录 一.工具及环境配置 1.Python3.8(官网下载) 2.Pycharm(官网下载) 3.Anaconda(官网下载) 4.环境配置(传送门,感谢前人栽树) ...

  7. 程序员11月书讯 | 硅谷,梦开始的地方

    (截图来源:电影硅谷传奇) 硅谷,一个令无数技术者和创业者心驰神往的地方.上个世纪,想要拥有一台属于自己的电脑简直是天方夜谭,而个人计算机就是在那样一个时代诞生了.一帮怪咖和梦想家在这里将想象变成现实 ...

  8. EYQiPa,梦开始的地方

    早在2003年,就有EYQiPa的设想,曾经尝试过去做它,不过总是不了了之.也许是当时技术能力不达标,也许是一直以来的对待事物缺少持之以恒的心态,时光如水,转眼8年过去了,这8年当中,总是偶尔去想EY ...

  9. hdfs 多个文件合并_hadoop学习笔记3 hadoop程序将本地文件夹中多个文件,合并为一个文件并上传到hdfs中--梦飞翔的地方(梦翔天空)...

    今天梦翔儿,成功实现hadoop编程,将本地文件夹中多个文件,合并为一个文件并上传到hdfs中 直接上代码:PutMerge.java import java.io.IOException; impo ...

最新文章

  1. 从零开始,教你征战Kaggle竞赛
  2. linux 文件与目录管理命令
  3. 平安技术开放日质量保证技术专场第一期 [附部分 ppt]
  4. python三层装饰器-python3装饰器
  5. vs创建html页面提示未找到,VS2015 打开html 提示 未能完成操作 解决办法
  6. 方舟手游服务器设置文件翻译,方舟生存进化手游界面翻译 方舟生存进化手机版中文对照翻译一览...
  7. HBase数据迁移到Kafka实战
  8. Linux串口编程_termios
  9. KubeCon 2018 参会记录 —— FluentBit Deep Dive 1
  10. 20个基本电路图讲解_12v太阳能充电电路图大全
  11. DMA engine的使用步骤 及 DMA一致性
  12. 源码-PL/SQL从入门到精通-第二章-PL/SQL基本概念-Part 2
  13. 安装Ubuntu后必须要做的几件事(一)--基础应用篇
  14. 《SpringCloud Alibaba 微服务架构》专题(二十三)-Seat工作原理
  15. 恒生电子2019校园招聘笔试题
  16. 支付宝小程序 使用uView实现省市区三级联动的后续
  17. Python you-get 库的使用方法
  18. Stream流的具体使用讲解
  19. 基金什么时候买入好?
  20. 概率论与数理统计学习笔记——第二讲——概率(2.3概率的基本性质)

热门文章

  1. 联想微型计算机m4500q,小身材大能量 ThinkCentre M4500q评测
  2. MYSQL学习与数据库综合实验(六)——实体完整性实验
  3. rc4加密算法c语言代码,RC4加密算法C语言实现.docx
  4. matlab常用函数randperm——随机整数生成和随机打乱矩阵顺序
  5. 雨林木风 GHOST 系统 X86/X64 官方原版2017
  6. 一站式迁移,人大金仓助力保险业务无感升级
  7. 微信小程序--顶部状态栏切换
  8. centos7镜像下载
  9. LeetCode 708. 循环有序列表的插入*
  10. 【经验分享】让iPad或者手机作为电脑扩展屏幕使用—Splashtop Wired XDisplay(亲测有效且免费)