Spark1.0.0生态圈一览

Problem Description

Chinachen is a football fanatic, and his favorite football club is Juventus fc. In order to buy a ticket of Juv, he finds a part-time job in Professor Qu’s lab.

And now, Chinachen have received an arduous task——Data Processing.

The data was made up with N positive integer (n1, n2, n3, … ), he may calculate the number , you can assume mod
N =0. Because the number is too big to count, so P mod 1000003 is instead.

Chinachen is puzzled about it, and can’t find a good method to finish the mission, so he asked you to help him.

Input

The first line of input is a T, indicating the test cases number.

There are two lines in each case. The first line of the case is an integer N, and N<=40000. The next line include N integer numbers n1,n2,n3… (ni<=N).

Output

For each test case, print a line containing the test case number ( beginning with 1) followed by the P mod 1000003.

Sample Input

2
3
1 1 3
4
1 2 1 4

Sample Output

Case 1:4
Case 2:6

又是一条数论题目,最近学习数论,看完书本感觉并不能掌握数论的,还是需要多多练习,多运用才能掌握这个思想武器的。

本题可以简单点过,不需要太高级的数论内容;

但是也可以运用好数论的内容,可以应用上三个数论的内容:

1 扩展欧几里得

2 快速求模

3 乘法逆元(inverse of modulo)

2  快速求模,也可以生成一个数组,因为这里最大是40000,故此数值不大,可以使用数组,然后查表,速度很快。

但是这里使用快速的时间效率也几乎接近常数,没必要保存一个数组。如下面的powMod函数。

3  乘法逆元的应用的原理就是:

如果求a / b % c;

那么可以求得b的乘法逆元e;be % c == 1,那么a / b  % c == a / b * b * e % c;相当于 a / b % c == a / b * 1(b*e) % c,这个是求模的性质,相当于一般算术中的一个数乘以其倒数等于1.最后可以化简为a * e % c == a / b % c;

这样做题,可以说非常科学系统,下面速度也算挺快的,而且消耗内存很小。

作者:靖心 http://blog.csdn.net/kenden23/article/details/29363389

#include <cstdio>

class DataProcessing3094
{
	const static int MOD = 1000003;
	long long s, t, g;

	void extGCD(int a, int b)
	{
		if (b == 0)
		{
			s = 1L, t = 0L;
			g = a;
		}
		else
		{
			extGCD(b, a % b);
			long long tmp = s;
			s = t;
			t = tmp - a / b * t;
		}
	}

	long long powMod(long long base, long long num, long long mod)
	{
		long long ans = 1;
		while (num)
		{
			if (num & 1) ans = ans * base % mod;
			base = base * base % mod;
			num >>= 1;
		}
		return ans % mod;
	}
public:
	DataProcessing3094()
	{
		int T, N, a;
		scanf("%d", &T);
		for (int i = 1; i <= T; i++)
		{
			scanf("%d", &N);
			long long ans = 0;
			for (int j = 0; j < N; j++)
			{
				scanf("%d", &a);
				ans = (ans + powMod(2, a, MOD)) % MOD;
			}
			extGCD(MOD, N);//即使g不等于1,最后mod也会约去g
			t = (t % MOD + MOD) % MOD;//求其最小正整数
			ans = ans * t % MOD;
			printf("Case %d:%I64d\n",i,ans);
		}
	}
};

Spark1.0.0生态圈一览,布布扣,bubuko.com

时间: 2024-12-15 04:36:32

Spark1.0.0生态圈一览的相关文章

Spark1.0.0 生态圈一览

Spark生态圈,也就是BDAS(伯克利数据分析栈),是伯克利APMLab实验室精心打造的,力图在算法(Algorithms).机器(Machines).人(People)之间通过大规模集成,来展现大数据应用的一个平台,其核心引擎就是Spark,其计算基础是弹性分布式数据集,也就是RDD. 通过Spark生态圈,AMPLab运用大数据.云计算.通信等各种资源,以及各种灵活的技术方案,对海量不透明的数据进行甄别并转化为实用的信息.以供人们更好的理解世界.Spark生态圈已经涉及到机器学习.数据挖掘

原理系列:Spark1.x 生态圈一览

Spark生态圈,也就是BDAS(伯克利数据分析栈),是伯克利APMLab实验室精心打造的,力图在算法(Algorithms).机器(Machines).人(People)之间通过大规模集成,来展现大数据应用的一个平台,其核心引擎就是Spark,其计算基础是弹性分布式数据集,也就是RDD.通过Spark生态圈,AMPLab运用大数据.云计算.通信等各种资源,以及各种灵活的技术方案,对海量不透明的数据进行甄别并转化为有用的信息,以供人们更好的理解世界.Spark生态圈已经涉及到机器学习.数据挖掘.

Spark1.0.0伪分布安装指南

?一.下载须知 软件准备: spark-1.0.0-bin-hadoop1.tgz   下载地址:spark1.0.0 scala-2.10.4.tgz    下载下载:Scala 2.10.4 hadoop-1.2.1-bin.tar.gz   下载地址:hadoop-1.2.1-bin.tar.gz jdk-7u60-linux-i586.tar.gz  下载地址:去官网下载就行,这个1.7.x都行 二.安装步骤 hadoop-1.2.1安装步骤,请看: http://my.oschina.

Spark-1.4.0单机部署(Hadoop-2.6.0采用伪分布式)【已测】

??目前手上只有一个机器,就先拿来练下手(事先服务器上没有安装软件)尝试一下Spark的单机部署. ??几个参数: ??JDK-1.7+ ??Hadoop-2.6.0(伪分布式): ??Scala-2.10.5: ??Spark-1.4.0: ??下面是具体的配置过程 安装JDK 1.7+ [下载网址]http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 环境变量设置(最好不要采用o

spark1.1.0集群安装配置

和分布式文件系统和NoSQL数据库相比而言,spark集群的安装配置还算是比较简单的: 安装JDK,这个几乎不用介绍了(很多软件都需要JDK嘛) wget http://download.oracle.com/otn-pub/java/jdk/7u71-b14/jdk-7u71-linux-x64.tar.gz?AuthParam=1416666050_dca8969bfc01e3d8d42d04040f76ff1 tar -zxvf jdk-7u71-linux-x64.tar.gz 安装sc

Apache Spark-1.0.0浅析(六):资源调度——Task执行

前面说到向executorActor(task.executorID)发送LaunchTask(task)消息,在CoarseGrainedExecutorBackend中定义receive接收launchTask消息,执行executor.launchTask override def receive = { case RegisteredExecutor(sparkProperties) => logInfo("Successfully registered with driver&q

Spark1.0.0属性配置

1:Spark1.0.0属性配置方式 Spark属性提供了大部分应用程序的控制项,并且可以单独为每个应用程序进行配置. 在Spark1.0.0提供了3种方式的属性配置: SparkConf方式 SparkConf方式可以直接将属性值传递到SparkContext: SparkConf可以对某些通用属性直接配置,如master使用setMaster,appname使用setAppName: 也可以使用set()方法对属性进行键-值对配置,如set("spark.executor.memory&qu

Spark1.0.0新特性

Spark1.0.0 release于2014-05-30日正式公布,标志Spark正式进入1.X的时代.Spark1.0.0带来了各种新的特性,并提供了更好的API支持:Spark1.0.0添加了Spark SQL这一个新的重要组件,用于载入和操作Spark的结构化数据:Spark1.0.0增强了现有的标准库(ML,streaming,GraphX),同一时候还增强了Java和Python语言的支持:最后,Spark1.0.0在运维上做了非常大的改进,包含支持Hadoop/YARN安全机制.使

Spark1.0.0 history server 配置

在运行Spark应用程序的时候,driver会提供一个webUI给出应用程序的运行信息,但是该webUI随着应用程序的完成而关闭端口,也就是说,Spark应用程序运行完后,将无法查看应用程序的历史记录.Spark history server就是为了应对这种情况而产生的,通过配置,Spark应用程序在运行完应用程序之后,将应用程序的运行信息写入指定目录,而Spark history server可以将这些运行信息装载并以web的方式供用户浏览. 要使用history server,对于提交应用程