【算法题目】2048游戏的最少时间 最大数

1.搜狐技术中心笔试遇到的题目

描述:假设滑动一次需要1秒,新出现是4的概率很小可以忽略,加到2048的需要的时间最少是多少?

分析:全部由2相加,得到4需要1次相加,得到8需要3次相加……得到2048需要1024-1次相加

(1024-1)/60约为17分钟

实际上,在进行加法前可能需要等待 新元素2的出现,那么估算的最少时间必然大于17分钟

具体枚举:

目标  需要时间

?





1

2

3

4

5

6

2      0

4      3

8      5

16    10

32    20   

64    39

2. 4*4的16个方格,最大数可以达到多少?

考虑出现4的话就是217 =131072,不考虑就是216=65536

4      __    8    24

28    27    26   25

29    210  211  212

216  215  214  213

【算法题目】2048游戏的最少时间 最大数,布布扣,bubuko.com

时间: 2024-10-15 07:19:23

【算法题目】2048游戏的最少时间 最大数的相关文章

2048游戏回顾二:算法总结(移动、合并、动画等)

如果只是单纯的写一个2048游戏,让这个游戏可以玩的话,工作量还是蛮小的.不过,在这写工作中,你可能花时间最多的就是数字的移动与合并的算法了,如果没有做过,可能确实要花点时间来构思,所以,写完2048游戏以后,我希望能把它做个记录. 移动与合并的算法 比如说我们有如下一个界面: 现在,玩家向左划,这个导致所有的数字向左移动,并且移动的过程中如果发生碰撞,会检查数字是不是可以合并. 我们的算法应该是通用的,不仅对于4*4模式,即便是针对3*3模式,n*n模式,它都应该是一样的. 那么怎么做呢?其实

2048游戏回想二:算法总结(移动、合并、动画等)

假设仅仅是单纯的写一个2048游戏.让这个游戏能够玩的话,工作量还是蛮小的.只是,在这写工作中,你可能花时间最多的就是数字的移动与合并的算法了,假设没有做过,可能确实要花点时间来构思,所以.写完2048游戏以后,我希望能把它做个记录. 移动与合并的算法 比方说我们有例如以下一个界面: 如今.玩家向左划.这个导致全部的数字向左移动,而且移动的过程中假设发生碰撞.会检查数字是不是能够合并. 我们的算法应该是通用的.不仅对于4*4模式,即便是针对3*3模式.n*n模式,它都应该是一样的. 那么怎么做呢

空闲时间用C语言写了下2048游戏

本身这个游戏逻辑挺简单的,所以,不多说了,直接上代码吧 #include <climits> #include <cstdio> #include <cstring> #include <stack> #include <string> #include <map> #include <vector> #include <cmath> using namespace std; const int MAXX =

最少javascript代码完成一个2048游戏

原生javascript代码写的2048游戏.建议在谷歌浏览器下跑.'WASD'控制方向.演示地址请移步:http://runjs.cn/detail/bp8baf8b 直接贴代码~ html: <!DOCTYPE> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/htm

对弈类游戏的人工智能(5)--2048游戏AI的解读

前言: 闲得没事, 网上搜"游戏AI", 看到一篇<<2048游戏的最佳算法是?来看看AI版作者的回答>>的文章. 而这篇文章刚好和之前讲的对弈类游戏AI对应上. 于是有了想法, 想把它作为一个实例来进行解读, 从而对之前偏理论的文章做个总结. 承接上四篇博文: (1). 评估函数+博弈树算法 (2). 学习算法 (3). 博弈树优化 (4). 游戏AI的落地 可能有些人会疑惑? 2048并非对弈类类型? 传统的博弈树模型是否能应用于此? 客官莫急, 让我们来一

是男人就下100层【第五层】——2048游戏

前言: 在"阳光小强"的实战系列博文<是男人就下100层>的上一层我们一起从零开始完成了我们自己的贪吃蛇游戏--CrazySnake,可能很多朋友还不过瘾,那么我们今天就来玩一玩最近一直比较火的2048游戏,让大家再过一把瘾.由于"阳光小强"目前并没有从事Android的游戏开发工作,所以这些游戏的实现并不需要很专业的游戏开发知识,如果你有Android的基础就可以一起来参与进来共同完成这个游戏.有些朋友可能就会说"这些小游戏,会不会有点简单,

若干经典基础算法题目练习

练习1,判断是否为素数: // ConsoleAppIsPrime1.cpp : 定义控制台应用程序的入口点. // /* *函数功能:判断一个输入的数是否为素数 *函数原形:bool Prime( int x ) *参数:int x:将要判断的数 *返回值:bool型变量,判断是否是素数 *备注:需要包含头文件<math.h> *日期:2014/11/25 *原创:否 *作者:EbowTang *Email:[email protected] */ #include "stdafx

分享一下自己写的2048游戏(3*3,4*4,5*5,6*6多种玩法,可反悔)

2048是一款非常常见的小游戏,所以我也想自己尝试着写一款,给自己练练手.说道练手,这里需要交代一下:我从事Android的工作刚刚一年,平时的工作主要是客制化UI和修改Bug,也就是这里改改,那里改改,因此,完整的开发项目的机会比较少,所以,对我而言,想要提高自己的编程水平,抽出时间自己做一些小项目是有意义的.虽然平时的工作主要是客制化UI和修改bug,但并不意味这我的工作是简单枯燥的,我时常会遇到系统中的一些bug,这样我有机会阅读android系统的源码,并从中分析问题出现的原因,这份工作

4096!——化简的2048游戏

游戏介绍: 这个能轻松到达 4096. 所以取名为 4096了. github地址是:https://github.com/chilly/4096 如果想直接玩游戏访问 4096.chillyc.info 这个4096 是直接copy的2048. 这个游戏需要消耗比较多的脑力.当然费了脑力还要拼拼运气.原因在于生成随机方块的地方90%会生成2,10%会生成4. 最后一搏的那个方块很有可能会因为2,4生成的问题导致游戏失败. 为什么要做这个游戏 这个原因其实是为让LP打到更高的分数.当然还要有些难