因子分析

Java蓝桥杯 素因子去重

自闭症网瘾萝莉.ら 提交于 2020-02-14 12:07:55
问题描述   给定一个正整数n,求一个正整数p,满足p仅包含n的所有素因子,且每个素因子的次数不大于1 输入格式   一个整数,表示n 输出格式   输出一行,包含一个整数p。 样例输入 1000 样例输出 10 数据规模和约定   n<=10^12 样例解释:n=1000=2^353,p=2*5=10 思路:一看见那种去除重复啥的题,立马想到set函数。分析他们之间的关系。 import java . util . HashSet ; import java . util . Scanner ; import java . util . Set ; public class Main { public static void main ( String [ ] args ) { Scanner scanner = new Scanner ( System . in ) ; int n = scanner . nextInt ( ) ; Set < Integer > set = new HashSet < Integer > ( ) ; for ( int i = 2 ; i < n ; i ++ ) { while ( n % i == 0 ) { n /= i ; set . add ( i ) ; } } set . add ( n ) ; int num = 1 ;

java例题_09 1000以内的完全数

倾然丶 夕夏残阳落幕 提交于 2020-02-11 19:35:11
1 /*9 【程序 9 求完数】 2 题目:一个数如果恰好等于它的所有因子之和,这个数就称为"完数"。 3 例如 6=1+2+3.编程找出 1000 以内的所有完数。 4 */ 5 6 /*分析 7 * 1、完数:各个小于它的约数(真约数,列出某数的约数,去掉该数本身,剩下的就是它的真约数)的和等于它本身的自然数叫做完全数 8 * 2、怎么找到一个数的所有因子---——-从1到n对n取余 9 * 3、遍历1~1000,找出每个数的所有因子再求和 10 * */ 11 12 13 14 package homework; 15 16 public class _09 { 17 18 public static void main(String[] args) { 19 //声明和s,因子a 20 int s=0,a=1; 21 //遍历1~1000 22 for (int i = 1; i <=1000; i++) { 23 //遍历1~i 24 for (int j = 1; j <i; j++) { 25 //用取余判断j是否为i的因子,如果是,将其加到和s; 26 a=i%j; 27 if(a==0) { 28 s=s+j; 29 // System.out.println(j+" "+a+" "+s+" "+i); 30 } 31 } 32 //这个i所有的因子的和是否等于i

LeetCode172解题思路

三世轮回 提交于 2020-02-03 21:58:11
题目描述: 给定一个整数 n,返回 n! 结果尾数中零的数量。 示例 1: 输入: 3 输出: 0 解释: 3! = 6, 尾数中没有零。 示例 2: 输入: 5 输出: 1 解释: 5! = 120, 尾数中有 1 个零. 说明: 你算法的时间复杂度应为 O(log n) 。 解题思路: 解法一: 首先肯定不能依赖于把阶乘算出来再去判断有多少个零了,因为阶乘很容易就溢出了,所以先一步一步理一下思路吧。 首先末尾有多少个 0 ,只需要给当前数乘以一个 10 就可以加一个 0。 再具体对于 5!,也就是 5 * 4 * 3 * 2 * 1 = 120,我们发现结果会有一个 0,原因就是 2 和 5 相乘构成了一个 10。而对于 10 的话,其实也只有 2 * 5 可以构成,所以我们只需要找有多少对 2/5。 我们把每个乘数再稍微分解下,看一个例子。 11! = 11 * 10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1 = 11 * (2 * 5) * 9 * (4 * 2) * 7 * (3 * 2) * (1 * 5) * (2 * 2) * 3 * (1 * 2) * 1 对于含有 2 的因子的话是 1 * 2, 2 * 2, 3 * 2, 4 * 2 ... 对于含有 5 的因子的话是 1 * 5, 2 * 5... 含有 2 的因子每两个出现一次

推荐系统相关算法(1):SVD

一世执手 提交于 2020-02-01 06:41:30
http://www.cnblogs.com/FengYan/archive/2012/05/06/2480664.html 1. SVD简介 假如要预测Zero君对一部电影M的评分,而手上只有Zero君对若干部电影的评分和风炎君对若干部电影的评分(包含M的评分)。那么能预测出Zero君对M的评分吗?答案显然是能。最简单的方法就是直接将预测分定为平均分。不过这时的准确度就难说了。本文将介绍一种比这个最简单的方法要准上许多,并且也不算复杂的算法。 SVD(Singular Value Decomposition)的想法是 根据已有的评分情况,分析出评分者对各个因子的喜好程度以及电影包含各个因子的程度,最后再反过来根据分析结果预测评分 。电影中的因子可以理解成这些东西:电影的搞笑程度,电影的爱情爱得死去活来的程度,电影的恐怖程度。。。。。。SVD的想法抽象点来看就是将一个N行M列的评分矩阵R(R[u][i]代表第u个用户对第i个物品的评分),分解成一个N行F列的用户因子矩阵P(P[u][k]表示用户u对因子k的喜好程度)和一个M行F列的物品因子矩阵Q(Q[i][k]表示第i个物品的因子k的程度)。用公式来表示就是 R = P * T(Q) //T(Q)表示Q矩阵的转置 下面是将评分矩阵R分解成用户因子矩阵P与物品因子矩阵Q的一个例子。R的元素数值越大,表示用户越喜欢这部电影

推荐系统相关算法(1):SVD

十年热恋 提交于 2020-02-01 06:40:52
假如要预测Zero君对一部电影M的评分,而手上只有Zero君对若干部电影的评分和风炎君对若干部电影的评分(包含M的评分)。那么能预测出Zero君对M的评分吗?答案显然是能。最简单的方法就是直接将预测分定为平均分。不过这时的准确度就难说了。本文将介绍一种比这个最简单的方法要准上许多,并且也不算复杂的算法。 SVD(Singular Value Decomposition)的想法是 根据已有的评分情况,分析出评分者对各个因子的喜好程度以及电影包含各个因子的程度,最后再反过来根据分析结果预测评分 。电影中的因子可以理解成这些东西:电影的搞笑程度,电影的爱情爱得死去活来的程度,电影的恐怖程度。。。。。。SVD的想法抽象点来看就是将一个N行M列的评分矩阵R(R[u][i]代表第u个用户对第i个物品的评分),分解成一个N行F列的用户因子矩阵P(P[u][k]表示用户u对因子k的喜好程度)和一个M行F列的物品因子矩阵Q(Q[i][k]表示第i个物品的因子k的程度)。用公式来表示就是 R = P * T(Q) //T(Q)表示Q矩阵的转置 下面是将评分矩阵R分解成用户因子矩阵P与物品因子矩阵Q的一个例子。R的元素数值越大,表示用户越喜欢这部电影。P的元素数值越大,表示用户越喜欢对应的因子。Q的元素数值越大,表示物品对应的因子程度越高。分解完后,就能利用P,Q来预测Zero君对《七夜》的评分了

因子分析

佐手、 提交于 2020-01-25 19:09:50
1 问题 之前我们考虑的训练数据中样例 的个数m都远远大于其特征个数n,这样不管是进行回归、聚类等都没有太大的问题。然而当训练样例个数m太小,甚至m<<n的时候,使用梯度下降法进行回归时,如果初值不同,得到的参数结果会有很大偏差(因为方程数小于参数个数)。另外,如果使用多元高斯分布(Multivariate Gaussian distribution)对数据进行拟合时,也会有问题。让我们来演算一下,看看会有什么问题: 多元高斯分布的参数估计公式如下: 分别是求mean和协方差的公式, 表示样例,共有m个,每个样例n个特征,因此 是n维向量, 是n*n协方差矩阵。 当m<<n时,我们会发现 是奇异阵( ),也就是说 不存在,没办法拟合出多元高斯分布了,确切的说是我们估计不出来 。 如果我们仍然想用多元高斯分布来估计样本,那怎么办呢? 2 限制协方差矩阵 当没有足够的数据去估计 时,那么只能对模型参数进行一定假设,之前我们想估计出完全的 (矩阵中的全部元素),现在我们假设 就是对角阵(各特征间相互独立),那么我们只需要计算每个特征的方差即可,最后的 只有对角线上的元素不为0 回想我们之前讨论过的二维多元高斯分布的几何特性,在平面上的投影是个椭圆,中心点由 决定,椭圆的形状由 决定。 如果变成对角阵,就意味着椭圆的两个轴都和坐标轴平行了。 如果我们想对 进一步限制的话

因子分析

主宰稳场 提交于 2020-01-25 19:09:34
1 问题 之前我们考虑的训练数据中样例 的个数m都远远大于其特征个数n,这样不管是进行回归、聚类等都没有太大的问题。然而当训练样例个数m太小,甚至m<<n的时候,使用梯度下降法进行回归时,如果初值不同,得到的参数结果会有很大偏差(因为方程数小于参数个数)。另外,如果使用多元高斯分布(Multivariate Gaussian distribution)对数据进行拟合时,也会有问题。让我们来演算一下,看看会有什么问题: 多元高斯分布的参数估计公式如下: 分别是求mean和协方差的公式, 表示样例,共有m个,每个样例n个特征,因此 是n维向量, 是n*n协方差矩阵。 当m<<n时,我们会发现 是奇异阵( ),也就是说 不存在,没办法拟合出多元高斯分布了,确切的说是我们估计不出来 。 如果我们仍然想用多元高斯分布来估计样本,那怎么办呢? 2 限制协方差矩阵 当没有足够的数据去估计 时,那么只能对模型参数进行一定假设,之前我们想估计出完全的 (矩阵中的全部元素),现在我们假设 就是对角阵(各特征间相互独立),那么我们只需要计算每个特征的方差即可,最后的 只有对角线上的元素不为0 回想我们之前讨论过的二维多元高斯分布的几何特性,在平面上的投影是个椭圆,中心点由 决定,椭圆的形状由 决定。 如果变成对角阵,就意味着椭圆的两个轴都和坐标轴平行了。 如果我们想对 进一步限制的话

因子分析

烈酒焚心 提交于 2020-01-25 19:09:09
目录: 什么是因子分析 因子分析的作用 因子分析模型 因子分析的统计特征 因子载荷矩阵的估计方法 因子旋转 为什么要做因子旋转 因子旋转方法 因子得分 因子分析步骤 举例 因子分析和主成分分析区别 1、什么是因子分析? 因子分析是一种 数据简化技术 。 它通过研究众多变量间的依赖关系, 探求观测数据中的基本数据结构 ,并且 用少数几个假象变量(因子)来表示其基本数据结构 ; 这几个 假想变量(因子)可以表示原来众多的原始变量的主要信息 ; 原始变量是可观测的显在变量,而假想变量是不可观测的潜在变量,即因子 ; 即一种用来 在众多变量中辨别、分析和归结出变量间的相互关系 并 用简单的变量(因子)来描述这种关系 的数据分析方法 如考察中学生的语文、英语、历史,数学、物理、化学成绩; 语文、英语、历史有很强的正相关; 数学、物理、化学有很强的正相关; 于是可以提取出两个因子:文科因子和理科因子 2、因子分析的主要作用? 寻求基本数据结构 数据简化 强相关问题会对分析带来困难 通过因子分析可以找出少数的几个因子替代原来的变量做回归分析、聚类分析和判别分析 3、因子分析模型 A称为 因子载荷矩阵 4、统计特征 因子载荷$a_{ij}$是第i个变量与第j个公共因子的相关系数; 共同度 :变量$X_i$的共同度是因子载荷矩阵的第i行的元素的平方和,记为$h_i^2=\sum_{j=1}^{m}a

高等数理统计(五)

有些话、适合烂在心里 提交于 2020-01-24 23:47:04
引言   【比较官方的简介】数理统计学是一门以 概率论为基础 ,应用性很强的学科。它研究怎样以有效的方式收集、 整理和分析带有随机性的数据,以便对所考察的问题作出正确的推断和预测,为采取正确的决策和行动提供依据和建议。数理统计不同于一般的资料统计,它更侧重于应用随机现象本身的规律性进行资料的收集、整理和分析。   【简单的讲】,就是 通过样本分析来推断整体。   【意义或者重要性】在这个大数据时代,数据是非常重要的。怎样挖掘数据内部的规律或者隐含的信息,变得尤为重要。当时我们是不可能获得整体的数据的,所以我们只能通过抽取样本,进而通过样本来推断整体的规律。   【目录】    第一章、样本与统计量      一、引言:      二、总体与样本:      三、统计量:      四、常用分布:    第二章、参数估计     一、引言:      二、点估计—— 矩估计法 :     三、点估计—— 极大似然估计 :     四、估计量的优良性准则     五、区间估计——正态分布        1、引入       2、 单个正态总体参数的区间估计        3、两个正态总体的区间估计     六 、区间估计——非正态分布:       1、大样本正态 近似法       2、二项分布       3、泊松分布    第三章、假设检验     一、引言:     二

L1-006. 连续因子

夙愿已清 提交于 2020-01-12 16:46:17
L1-006. 连续因子 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 一个正整数N的因子中可能存在若干连续的数字。例如630可以分解为3*5*6*7,其中5、6、7就是3个连续的数字。给定任一正整数N,要求编写程序求出 最长连续因子的个数 ,并输出 最小的连续因子序列 。 (这里指,若有多个最长连续因子序列,输出和最小的一组) 输入格式: 输入在一行中给出一个正整数N(1<N<2 31 )。 输出格式: 首先在第1行输出最长连续因子的个数;然后在第2行中按“因子1*因子2*……*因子k”的格式输出最小的连续因子序列,其中因子按递增顺序输出,1不算在内。 输入样例: 630 输出样例: 3 5*6*7 分析:1.暴力法,从该数的sqrt(N)开始往前扫,不断更新维护最长连续因子的个数并保存最小的连续因子序列 http://blog.csdn.net/liangzhaoyang1/article/details/51204989 #include "iostream" #include "cmath" #include "cstdio" #include "cstring" using namespace std; int main() { int Count,n,N,End,sq; char temp