我需要生成一定范围内的随机数字对( float )。 基本上这些是 [Lat,Lng] 对(经度 - 纬度坐标)的点
我认为这会非常简单
<?php echo (rand(0,60).'.'.rand(0,99999999999999).' || '); // yes, a string is ok...?>
但它并没有让我控制 float (分辨率)之后的数字数量 - 我需要修复它。
所以下一阶段是:
<?php echo (rand(0,60*pow(10,6)))/pow(10,6).' || '; //pow(10,$f) where $ is the resolution ?>
这行得通。有点 .. 有时它会产生像
这样的结果22.212346 || 33.134 || 36.870757 || //(rare , but does happen)
但是嘿 - 坐标是从 -90 到 90 (lon) 和 -180 到 180 (lan) - 那减号呢?
echo (rand(0,-180*pow(10,9)))/pow(10,9).' || ';
应该这样做......并且将所有组合在一起应该以某种方式给我一个随机字符串,如
23.0239423525 || -135.937419777
所以在所有这些介绍之后 - 这里是是我的问题。
作为新手,我是不是错过了什么? PHP 中是否没有内置函数来生成具有从负到正范围的随机 float ?
如果上面的函数被告知返回 6(我没有应用任何 ABS 或 ROUND),为什么有时它只变成分辨率 3,4 或 5 - php 中有自动舍入吗?如果有,如何避免?
我注意到“随机”并不是那么随机 - 生成的数字总是或多或少是一个范围之间的系列 - 彼此接近。 PHP 随机是一个简单的非常非常非常快的旋转计数器吗?
如何从生成的范围中排除一个范围?? (或者实际上是范围数组)
我知道这些问题很多,但任何帮助/想法都会很棒! (如果第一个回答是肯定的,剩下的几乎可以忽略:-)
最佳答案
rand() 函数可以取负值,所以也许你可以这样做:
$num = mt_rand(-180000000, 180000000)/1000000;
echo number_format($num, 6);
如果你想要小数点后 6 位。
就排除范围而言,您可能必须分两步进行。首先考虑你想要的范围。假设您有 3 个范围,您希望从中生成随机数。范围 1 = -180 到 -10,范围 2 = 10 - 100 和范围 3 = 120 - 180。然后你可以生成一个从 1 到 3 的随机数,用它来选择一个范围,然后生成该范围内的数字.
关于PHP 随机 - 排除/包含/ float /底片和其他动物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9646388/
我试图在一个项目中使用rake,如果我把所有东西都放到Rakefile中,它会很大并且很难读取/找到东西,所以我试着将每个命名空间放在lib/rake中它自己的文件中,我添加了这个到我的rake文件的顶部:Dir['#{File.dirname(__FILE__)}/lib/rake/*.rake'].map{|f|requiref}它加载文件没问题,但没有任务。我现在只有一个.rake文件作为测试,名为“servers.rake”,它看起来像这样:namespace:serverdotask:testdoputs"test"endend所以当我运行rakeserver:testid时
我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚
为了将Cucumber用于命令行脚本,我按照提供的说明安装了arubagem。它在我的Gemfile中,我可以验证是否安装了正确的版本并且我已经包含了require'aruba/cucumber'在'features/env.rb'中为了确保它能正常工作,我写了以下场景:@announceScenario:Testingcucumber/arubaGivenablankslateThentheoutputfrom"ls-la"shouldcontain"drw"假设事情应该失败。它确实失败了,但失败的原因是错误的:@announceScenario:Testingcucumber/ar
我有一个包含多个键的散列和一个字符串,该字符串不包含散列中的任何键或包含一个键。h={"k1"=>"v1","k2"=>"v2","k3"=>"v3"}s="thisisanexamplestringthatmightoccurwithakeysomewhereinthestringk1(withspecialcharacterslike(^&*$#@!^&&*))"检查s是否包含h中的任何键的最佳方法是什么,如果包含,则返回它包含的键的值?例如,对于上面的h和s的例子,输出应该是v1。编辑:只有字符串是用户定义的。哈希将始终相同。 最佳答案
我需要一些关于TDD概念的帮助。假设我有以下代码defexecute(command)casecommandwhen"c"create_new_characterwhen"i"display_inventoryendenddefcreate_new_character#dostufftocreatenewcharacterenddefdisplay_inventory#dostufftodisplayinventoryend现在我不确定要为什么编写单元测试。如果我为execute方法编写单元测试,那不是几乎涵盖了我对create_new_character和display_invent
我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我
华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o
我的Gallery模型中有以下查询:media_items.includes(:photo,:video).rank(:position_in_gallery)我的图库模型有_许多媒体项,每个都有一个照片或视频关联。到目前为止,一切正常。它返回所有media_items包括它们的photo或video关联,由media_item的position_in_gallery属性排序。但是我现在需要将此查询返回的照片限制为仅具有is_processing属性的照片,即nil。是否可以进行相同的查询,但条件是返回的照片等同于:.where(photo:'photo.is_processingIS
这是一个例子:s="abcd+subtext@example.com"s.match(/+[^@]*/)Result=>"+subtext"问题是,我不想在其中包含“+”。我希望结果是“潜台词”,没有+ 最佳答案 您可以在正则表达式中使用括号来创建匹配组:s="abcd+subtext@example.com"s=~/\+([^@]*)/&&$1=>"subtext" 关于ruby-正则表达式-排除一个字符,我们在StackOverflow上找到一个类似的问题:
-if!request.path_info.include?'A'%{:id=>'A'}"Text"-else"Text"“文本”写了两次。我怎样才能只写一次并同时检查path_info是否包含“A”? 最佳答案 有两种方法可以做到这一点。使用部分,或使用content_forblock:如果“文本”较长,或者是一个重要的子树,您可以将其提取到一个部分。这会使您的代码变干一点。在给出的示例中,这似乎有点矫枉过正。在这种情况下更好的方法是使用content_forblock,如下所示:-if!request.path_info.inc