从赌钱游戏看PageRank算法

谈到并行计算应用,会有人想到PageRank算法,我们有成千上万的网页分析链接关系确定排名先后,借助并行计算完成 是一个很好的场景。长期以来,Google的创始发明PageRank算法吸引了很多人学习研究,据说当年Google创始者兴奋的找到 Yahoo!公司,说他们找到一种更好的搜索引擎算法,但是被Yahoo!公司技术人员泼了冷水,说他们关心的不是更好的技术, 而是搜索的盈利。后来Google包装成了“更先进技术的新一代搜索引擎”的身份,逐渐取代了市场,并实现了盈利。

由于PageRank算法有非常高的知名度和普及度,我们接下来以PageRank算法为例讲述“并行计算+数据算法”的经典 搭配,并且这种“海量数据并行处理、迭代多轮后收敛”的分析过程也跟其他的数据挖掘或者机器学习算法应用类似,能起 到很好的参考作用。

下面是PageRank算法的公式:

我们其实可以直接阐述该公式本身,并介绍如何使用并行计算套用上面公式得到各网页的PageRank值,这样虽然通过并 行计算方式完成了PageRank计算,但是大家仍然不明白上面的PageRank公式是怎么来的。

我们把这个PageRank算法 公式先放在一边,看看一个赌钱的游戏:

有甲、乙、丙三个人赌钱,他们的输赢关系如下:

甲的钱输给乙和丙

乙的钱输给丙

丙的钱输给甲

例如,甲、乙、丙各有本钱100元,按照以上输赢关系,玩一把下来:

甲输给乙50元、输给丙50元

乙输给丙100元

丙输给甲100元

如果仅是玩一把的话很容易算出谁输谁赢

但如果他们几个维持这样的输赢关系,赢的钱又投进去继续赌,这样一轮一 轮赌下去的话,最后会是什么样子呢?

我们可以写个单机程序看看,为了方便计算,初始本钱都设为1块钱,用x1, x2,x3代表甲、乙、丙:

double x1=1.0,x2=1.0,x3=1.0;

用x1_income,x2_income,x3_income代表每赌一把后各人 赢的钱,根据输赢关系:

double x2 income =x1/2.0;

double x3 income =x1/2.0+x2;

double x1_ income =x3;

最后再把各人赢的钱覆盖掉本钱,继续往下算。完整程序如下:

// Gamble单机程序

public class Gamble

{

public static double x1=1.0,x2=1.0,x3=1.0;

public static void playgame(){

       double x2_income=x1/2.0;
       double x3_income=x1/2.0+x2;
       double x1_income=x3;
       x1=x1_income;
       x2=x2_income;
       x3=x3_income;
       System.out.println("x1:"+x1+", x2:"+x2+", x3:"+x3);
}               public static void main(String[] args){
       for(int i=0;i<500;i++){
       System.out.print("第"+i+"轮 ");
       playgame();
       }
}
}

我们运行500轮后,看到结果如下:

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索算法
, 算法并行
, 公式
, java pagerank
, 并行计算
, double
, pagerank
, 算法 公式 
X算法
pagerank算法、pagerank算法原理、pagerank算法实现、pagerank算法应用案例、pagerank算法java实现,以便于您获取更多的相关知识。

时间: 2024-08-03 20:36:08

从赌钱游戏看PageRank算法的相关文章

深入理解游戏中寻路算法

如果你玩过MMOARPG游戏,比如魔兽,你会发现人物行走会很有趣,为了模仿人物行走的真实体验,他们会选择最近路线达到目的地,期间会避开高山或者湖水,绕过箱子或者树林,直到走到你所选定的目的地. 这种看似寻常的寻路在程序实现起来就需要一定的寻路算法来解决,如何在最短时间内找到一条路径最短的路线,这是寻路算法首先要考虑的问题. 在这篇文章中我们会循序渐进来讲解寻路算法是如何演进的,你会看到一种算法从简单到高效所遇到的问题,以及精进的过程,带着问题来阅读,理解更快. 本篇主要包含以下内容: 1.图 2

【原创】机器学习之PageRank算法应用与C#实现(1)算法介绍

考虑到知识的复杂性,连续性,将本算法及应用分为3篇文章,请关注,将在本月逐步发表. 1.机器学习之PageRank算法应用与C#实现(1)算法介绍 2.机器学习之PageRank算法应用与C#实现(2)球队排名应用与C#代码 3.机器学习之PageRank算法应用与C#实现(3)球队实力排名应用与C#代码  Pagerank是Google排名运算法则(排名公式)的一部分,是Google用于用来标识网页的等级/重要性的一种方法,是Google用来衡量一个网站的好坏的唯一标准.在揉合了诸如Title

文本相似度结合PageRank算法

目标 尝试了一下把PageRank算法结合了文本相似度计算.直觉上是想把一个list里,和大家都比较靠拢的文本可能最后的PageRank值会比较大.因为如果最后计算的PageRank值大,说明有比较多的文本和他的相似度值比较高,或者有更多的文本向他靠拢.这样是不是就可以得到一些相对核心的文本,或者相对代表性的文本?如果是要在整堆文本里切分一些关键的词做token,那么每个token在每份文本里的权重就可以不一样,那么是否就可以得到比较核心的token,来给这些文本打标签?当然,分词切词的时候都是

【原创】机器学习之PageRank算法应用与C#实现(2)球队排名应用与C#代码

在上一篇文章:机器学习之PageRank算法应用与C#实现(1)算法介绍 中,对PageRank算法的原理和过程进行了详细的介绍,并通过一个很简单的例子对过程进行了讲解.从上一篇文章可以很快的了解PageRank的基础知识.相比其他一些文献的介绍,上一篇文章的介绍非常简洁明了.说明:本文的主要内容都是来自"赵国,宋建成.Google搜索引擎的数学模型及其应用,西南民族大学学报自然科学版.2010,vol(36),3"这篇学术论文.鉴于文献中本身提供了一个非常简单容易理解和入门的案例,所

求j2me 棋牌游戏-斗地主 的算法?

问题描述 求j2me棋牌游戏-斗地主的算法? 解决方案 解决方案二:算法解决方案三:代码例子解决方案四:首先是,判断牌的大小然后,电脑AI,出牌,跟牌,再,出牌的AI,放下家?正常出牌,按照手上牌优先出的顺序出跟牌的AI,有的比他大的,判断是否要打,还是不打解决方案五:要源代码例子解决方案六:竹木一瓜;看过你的回复,首先谢谢.如果.你能贴出点,实现方法的代码更好.解决方案七:这玩意儿要收费的解决方案八:/***规则判断**@authorzg.shi*/publicinterfaceRule{pu

深入浅出PageRank算法

PageRank算法 PageRank算法是谷歌曾经独步天下的"倚天剑",该算法由Larry Page和http://www.aliyun.com/zixun/aggregation/16959.html">Sergey Brin在斯坦福大学读研时发明的,论文点击下载: The PageRank Citation Ranking: Bringing Order to the Web. 本文首先通过一些参考文献引出问题,然后给出了PageRank的几种实现算法,最后将其推

c语言-求大神来看看我的算法有没有可行性,最好能给点建议

问题描述 求大神来看看我的算法有没有可行性,最好能给点建议 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10^100. 输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格. 输入样例: 1234567890987654321123456789 输出样例:yi san w 我的代码如下: #include<stdio.h> #include&l

c++-关于一个游戏中拦截算法的简单疑问

问题描述 关于一个游戏中拦截算法的简单疑问 在一本人工智能书上看到一个拦截算法 主要代码如图. 书中所述大概过程是: 用追击者和猎物的速度算出相对追击者的速度 然后算出两者之间的位移 再通过位移除以速度求出拦截所需要的时间 最后用猎物速度乘以时间加上它的位置算出即将拦截的位置 最后再通过其他方法让追击者朝着这个拦截的位置去拦截 然而个人理解就是: 追击者要实现拦截 根本问题就是求追击者的速度(准确来说是速度的方向) 然而要实现拦截则需要追击者本身的速度 这成了个矛盾 然后我把这原理用代码在uni

《R的极客理想——高级开发篇 A》一一2.2 PageRank算法R语言实现

2.2 PageRank算法R语言实现 问题 如何用R语言实现PageRank算法? 引言 Google搜索,早已成为我每天必用的工具,我无数次惊叹它搜索结果的准确性.同时,我也在做Google的SEO,推广自己的博客.经过几个月尝试,我的博客PR到2了,外链也有几万个.总结下来,还是感叹PageRank的神奇.笔者认为PageRank是改变互联网的算法!2.2.1 PageRank算法介绍 PageRank是Google专有的算法,用于衡量特定网页相对于搜索引擎索引中的其他网页而言的重要程度.