链接:https://www.luogu.org/problem/show?pid=2044#sub

题目描述

栋栋最近迷上了随机算法,而随机数是生成随机算法的基础。栋栋准备使用线性同余法(Linear Congruential Method)来生成一个随机数列,这种方法需要设置四个非负整数参数m,a,c,X[],按照下面的公式生成出一系列随机数{Xn}:

                       X[n+]=(aX[n]+c) mod m
其中mod m表示前面的数除以m的余数。从这个式子可以看出,这个序列的下一个数总是由上一个数生成的。 用这种方法生成的序列具有随机序列的性质,因此这种方法被广泛地使用,包括常用的C++和Pascal的产生随机数的库函数使用的也是这种方法。 栋栋知道这样产生的序列具有良好的随机性,不过心急的他仍然想尽快知道X[n]是多少。由于栋栋需要的随机数是0,,...,g-1之间的,他需要将X[n]除以g取余得到他想要的数,即X[n] mod g,你只需要告诉栋栋他想要的数X[n] mod g是多少就可以了。 输入输出格式 输入格式:
输入包含6个用空格分割的整数m,a,c,X[],n和g,其中a,c,X[]是非负整数,m,n,g是正整数。 输出格式:
输出一个数,即X[n] mod g 输入输出样例 输入样例#: 输出样例#: 说明 计算得X[n]=X[]=,故(X[n] mod g) = ( mod ) = %的数据中n,m,a,c,X[]<=^,g<=^

题干

没找出错误,有空再调。

#include<iostream>
#include<cstdio>
#include<queue>
#include<vector>
#include<algorithm>
#include<math.h>
#include<cstring>
using namespace std;
#define LL unsigned long long
unsigned long long m,a,c,x0,n,g;
struct node {
unsigned long long v[][];
}x,b,ans,p;
node cheng(node x,node y)
{
for(LL i=;i<=;i++)
for(LL j=;j<=;j++)
{
p.v[i][j]=;
for(LL k=;k<=;k++)
p.v[i][j]=(p.v[i][j]+x.v[i][k]*y.v[k][j])%m;
}
return p;
}
void fastlow()
{
while(n)
{
if(n%) ans=cheng(ans,x);
x=cheng(x,x);n/=;
}
}
int main()
{
cin>>m>>a>>c>>x0>>n>>g;
x.v[][]=a%m,x.v[][]=;
x.v[][]=c%m,x.v[][]=; b.v[][]=x0%m,b.v[][]=;
b.v[][]=b.v[][]=; n--;
ans=cheng(b,x);
fastlow(); cout<<ans.v[][]%g;
return ;
}

代码60

P2044 随机数生成器的更多相关文章

  1. 【原创】开源Math.NET基础数学类库使用(13)C#实现其他随机数生成器

                   本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新  开源Math.NET基础数学类库使用总目录:[目录]开源Math.NET基础数学类库使用总目录 前言 ...

  2. 【BZOJ-3122】随机数生成器 BSGS

    3122: [Sdoi2013]随机数生成器 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 1362  Solved: 531[Submit][Sta ...

  3. BZOJ-2875 随机数生成器 矩阵乘法快速幂+快速乘

    题目没给全,吃X了... 2875: [Noi2012]随机数生成器 Time Limit: 10 Sec Memory Limit: 512 MB Submit: 1479 Solved: 829 ...

  4. [BZOJ3671][UOJ#6][NOI2014]随机数生成器

    [BZOJ3671][UOJ#6][NOI2014]随机数生成器 试题描述 小H最近在研究随机算法.随机算法往往需要通过调用随机数生成函数(例如Pascal中的random和C/C++中的rand)来 ...

  5. NOI2014 随机数生成器

    随机数生成器 [问题描述] 小H最近在研究随机算法.随机算法往往需要通过调用随机数生成函数(例如Pascal中的random和C/C++中的rand)来获得随机性.事实上,随机数生成函数也并不是真正的 ...

  6. 【BZOJ 3122】 [Sdoi2013]随机数生成器 (BSGS)

    3122: [Sdoi2013]随机数生成器 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 1442  Solved: 552 Description ...

  7. Linux下对拍脚本与随机数生成器

    对拍脚本 新建一个文档 check.sh 作为对拍脚本. #!/bin/bash while(true)do #死循环 ./data > .in #运行数据生成器,将数据输出到1.in ./st ...

  8. 矩阵(快速幂):COGS 963. [NOI2012] 随机数生成器

    963. [NOI2012] 随机数生成器 ★★   输入文件:randoma.in   输出文件:randoma.out   简单对比 时间限制:1 s   内存限制:128 MB [问题描述] 栋 ...

  9. 解密随机数生成器(二)——从java源码看线性同余算法

    Random Java中的Random类生成的是伪随机数,使用的是48-bit的种子,然后调用一个linear congruential formula线性同余方程(Donald Knuth的编程艺术 ...

随机推荐

  1. Session Timeout 与 $.ajaxSetup

    对于session过期跳转的问题,很简单,就是一个过滤器,然后判断session为空?跳转:继续.但是对于ajax的请求,需要做特殊处理,见下面代码中的 // 此处考虑ajax操作session过期的 ...

  2. redis---01

    redis是什么: redis是开源,BSD许可,高级的key-value存储系统. 可以用来存储字符串,哈希结构,链表,集合,因此,常用来提供数据结构服务. redis和memcached相比,的独 ...

  3. Hadoop MapReduce输入输出类型

    一.输入格式 1.输入分片split 一个分片对应一个map任务: 一个分片包含一个表(整个文件)上的若干行,而一条记录(单行)对应一行: 分片包含一个以字节为单位的长度 和 一组存储位置,分片不包含 ...

  4. 关于android的DB操作

    package com.metoo.girls; import android.content.ContentValues; import android.content.Context; impor ...

  5. lstat函数的使用【学习笔记】

    通过lstat函数获取文件的类型的代码如下. #include "apue.h" int main(int argc,char *argv[]) { int i; struct s ...

  6. OpenMediaVault Redmine 安装

    /******************************************************************** * OpenMediaVault Redmine 安装 * ...

  7. 并不对劲的bzoj5475:loj2983:p5206:[wc2019]数树

    题目大意 task0:有两棵\(n\)(n\leq10^5)个点的树\(T1,T2\),每个点的点权可以是一个在\([1,y]\)里的数,如果两个点既在\(T1\)中有直接连边,又在\(T2\)中有直 ...

  8. ASP.NET WebServce项目下添加Http服务,支持Get,Post请求方式;传输格式json/xml

    由于WEBServce老项目中需要增添新的接口,而且添加的接口不希望被其它项目以引用Servces方式使用. 那么得在现有Service项目中添加Http请求方式来实现系统间数据交互.只需要告知请求地 ...

  9. jQuery EasyUI Portal 保存拖动位置,仿谷歌DashBoard效果的

    仿照谷歌http://www.google.com/ig?hl=zh-CN中的效果,本文档中包含了拖动后保存位置至Cookie中以及拖动后不保存位置的html文件效果,文档结构

  10. Laravel 在 Nginx 中的参考配置两份

    此份参考自网络: server { listen 80; server_name laravel.app; root /项目目录/public; index index.php index.html ...