我正在研究俄罗斯方块式的HTML5游戏,需要加强空间优化算法.需要以最节省空间的方式将不同大小的矩形块添加到画布中.我知道这个块占用了多少空间,我需要找到一个最近的点,块可以添加一个固定的x坐标 - 绝对最近的点是一个不错的选择.
我实现了进行搜寻逐像素值向下推动,直到它找到形状足够的自由空间,在画布上检查版本,然后将其添加.此作品(慢)只有在空间罢了左右的算法可以放心地假设,如果第一像素列是安全的,然后可以加入整个块.
我需要让这个更加强大,这就是我认为应该去的地方.
存储四叉树来表示电路板状态使我能够更快地识别出有空间的位置.
为每个深度级别存储4个节点 - 每个节点为0表示完全为空,或者1表示"在某处有某些东西".每个渐进的深度级别都会提供有关电路板的越来越多的信息.
given(boardstate, block width, block height)
-calculate the largest grid space the block must span
// a block which is 242x38 MUST span a 16x16 free space
// (based on 1/2 of smallest dimension)
-the block width requires n consecutive free spaces
// (242/16) = 15
-find the first available 15x1 spaces in the board
-check the surrounding tiles at the next level of depth for collisions
-check the surrounding tiles at …
Run Code Online (Sandbox Code Playgroud) 如何在我的bash表达式中逃避单个qoutes find . | xargs perl -pi -e 's/'conflicts' => '',//g'
?我想在我的文件中替换字符串'conflicts'=>''?
我正在尝试将lat/lon对转换为像素坐标.我找到了这个墨卡托投影,但我不明白代码.x_adj,y_adj变量的因素是什么?当我运行没有这些常量的代码时,我的lat/lon对不在我的地图上,x和y像素坐标不是我想要的.
function get_xy(lat, lng)
{
var mapWidth=2058;
var mapHeight=1746;
var factor=.404;
var x_adj=-391;
var y_adj=37;
var x = (mapWidth*(180+lng)/360)%mapWidth+(mapWidth/2);
var latRad = lat*Math.PI/180;
var mercN = Math.log(Math.tan((Math.PI/4)+(latRad/2)));
var y = (mapHeight/2)-(mapWidth*mercN/(2*Math.PI));
return { x: x*factor+x_adj,y: y*factor+y_adj}
}
Run Code Online (Sandbox Code Playgroud)
资料来源:http://webdesignerwall.com/tutorials/interactive-world-javascript-map/comment-page-1? replytocom = 103225
我正在寻找Fleury或Hierholzer算法的代码示例.我用我的语言找不到任何东西?
Drake和Hougardy找到了最大加权匹配问题的简单近似算法.我认为我对学术论文的理解超出了我的能力,所以我正在寻找一个简单的实现,最好在php,c,javascript中?
我想使用地理编码从给定的纬度和经度中检索地理位置,使用网站上的给定示例
http://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&sensor=true
我只是在这个例子中需要城市名称纽约,国家名称是美国.但问题是这些单词不止一次出现为long_name.
我的问题如何在php中解析这个json/xml以获取城市名称和国家/地区.
$url= file_get_contents('http://maps.googleapis.com/maps/api/geocode/xml?latlng=40.714??224,-73.961452&sensor=true');
$xml = simplexml_load_string($url);
$tracks = $xml->result;
$temp; $city; $country;
foreach($tracks as $key)
{
foreach($key->address_component as $val)
{
$temp= $val->long_name;
if($val->type=="locality")
{
$city=$temp;
}else if($val->type=="country")
{
$country=$temp;
}
}
}
echo $country."<br />"; echo $city;
<?xml version="1.0" encoding="UTF-8"?>
<GeocodeResponse>
<status>OK</status>
<result>
<type>street_address</type>
<formatted_address>277 Bedford Avenue, Brooklyn, New York 11211, USA</formatted_address>
<address_component>
<long_name>277</long_name>
<short_name>277</short_name>
<type>street_number</type>
</address_component>
<address_component>
<long_name>Bedford Avenue</long_name>
<short_name>Bedford Ave</short_name>
<type>route</type>
</address_component>
<address_component>
<long_name>Williamsburg</long_name>
<short_name>Williamsburg</short_name>
<type>neighborhood</type>
<type>political</type>
</address_component>
<address_component>
<long_name>Brooklyn</long_name>
<short_name>Brooklyn</short_name>
<type>sublocality</type>
<type>political</type>
</address_component>
<address_component> …
Run Code Online (Sandbox Code Playgroud) 我有一个数组,其中包含不同大小的材料列表:{4,3,4,1,7,8}
.但是,垃圾箱可以容纳最大尺寸为10的材料.我需要找出包装阵列中所有元素所需的最小数量的垃圾箱.
对于上述阵列中,可以在3个箱包装和将它们划分如下:{4,4,1}
,{3,7}
,{8}
.还有其他可能的安排也适合三个库存管道,但它不能用更少的
我试图通过递归来解决这个问题,以便更好地理解它.
我正在使用这个 DP配方(pdf文件的第20页)
考虑输入(n1; :::; nk),其中n =Σnj项
确定可以打包到单个bin中的k元组(输入的子集)的集合
即所有元组(q1; :::; qk)其中OPT(q1; :::; qk)= 1
用Q表示这个集合对于每个k元组q,我们有OPT(q)= 1
通过使用递归计算剩余值:OPT(i1; :: :; ik)= 1 + minOPT(i1 - q1; :::; ik - qk)
我已经制作了代码,它适用于小型数据集.但是如果将我的数组的大小增加到超过6个元素,它变得非常慢 - 解决包含8个元素的数组需要大约25秒你能告诉我算法是否有问题?我不需要替代解决方案--- 只需要知道为什么这么慢,以及如何改进它
这是我用C++编写的代码:
void recCutStock(Vector<int> & requests, int numStocks)
{
if (requests.size() == 0)
{
if(numStocks <= minSize)
{
minSize = numStocks;
}
// cout<<"GOT A RESULT : "<<numStocks<<endl;
return ;
}
else
{
if(numStocks+1 < minSize) …
Run Code Online (Sandbox Code Playgroud) 24:00时钟和00:00时钟之间有什么区别?IMO 24:00时钟是前一天,00:00时钟是新的一天的开始.但我并不是真的相信,而且我是编程日期的新手
更新:这是维基百科文章中关于如何处理24:00和00:00混乱的军事时间和风格指南的说法:http://en.m.wikipedia.org/wiki/24-hour_clock#section_1.
我见过许多 mandelbrot 图像生成器绘制 mandelbrot 的低分辨率分形,然后不断改进分形。这是平铺算法吗?这是一个例子:http : //neave.com/fractal/
更新:我发现这个关于递归细分和计算 mandelbrot:http://www.metabit.org/~rfigura/figura-fractal/math.html。也许可以使用 kd-tree 来细分图像?
更新 2:http : //randomascii.wordpress.com/2011/08/13/faster-fractals-through-algebra/ 更新 3:http : //www.fractalforums.com/programming/mandelbrot-exterior-optimization/15/
当我从计算机以root身份运行时,我的c ++程序给了我一个seg错误,但是当我启动远程会话时却没有.我的程序仅作为用户从我的计算机运行.可能是什么问题?我为嵌入式设备编写了程序,我正在使用它来编译:
gcc -Werror notify.cc -o notify `pkg-config --libs --cflags gtk+-2.0 hildon-notifymm hildonmm hildon-fmmm'
Run Code Online (Sandbox Code Playgroud)
我没有收到任何错误.这可能是旗帜问题吗?我可以发布我的代码.
编辑:当我用gdb启动我的程序时,我得到了这个:
Program received signal SIGSEGV, Segmentation fault.
0x40eed060 in strcmp () from /lib/libc.so.6
0x40eed060 <strcmp+0>: ldrb r2, [r0], #1
Run Code Online (Sandbox Code Playgroud)
Backtrace给出这个:
(gdb) backtrace
#0 0x40eed060 in strcmp () from /lib/libc.so.6
#1 0x40b7f190 in dbus_set_g_error ()
from /usr/lib/libdbus-glib-1.so.2
#2 0x40b7d060 in dbus_g_bus_get () from /usr/lib/libdbus-glib-1.so.2
#3 0x400558ec in notify_init () from /usr/lib/libnotify.so.1
#4 0x4004a240 in Notify::init(Glib::ustring const&) ()
from /usr/lib/libnotifymm-1.0.so.7
#5 0x40033794 in Hildon::notify_init(Glib::ustring const&) ()
from …
Run Code Online (Sandbox Code Playgroud) 我被告知duff设备不适用于PHP,因为交换机和案例结构的工作方式不同.我在php.net上发现这个duff devive,我的问题是这个设备有什么问题?或者我不明白duff设备?在我的汇编程序中,我可以使用简单的命令展开循环,当它编译时,我得到一个展开的循环.
<?php
$n = $ITERATIONS % 8;
while ($n--) $val++;
$n = (int)($ITERATIONS / 8);
while ($n--) {
$val++;
$val++;
$val++;
$val++;
$val++;
$val++;
$val++;
$val++;
}
?>
Run Code Online (Sandbox Code Playgroud) 我想从图中生成所有三元组。第一个“集合”中的所有三元组将是 1,2,3 和 1,3,2 和 3,2,1。我对这组的另一个三元组(即 2,1,3 或 3,1,2 )不感兴趣。我怎样才能做到这一点?
php ×6
algorithm ×5
graph ×3
javascript ×3
math ×3
bash ×1
bin ×1
bin-packing ×1
c++ ×1
date ×1
duffs-device ×1
fractals ×1
gdb ×1
geolocation ×1
geometry ×1
google-maps ×1
json ×1
linux ×1
maemo ×1
mandelbrot ×1
packing ×1
perl ×1
projection ×1
recursion ×1
trigonometry ×1