0 0

ruby程序的一个奇怪的问题3

a=[2,3,4,5,12,31,45,7,8,2,345,567,85,234,56,77,89,135,653]

b= Array.new
b[0]= a[0]

(1..a.length-1).each{|weizhi|
  
number = 0
  b.each{|mei|
    if (b[mei].to_i - a[weizhi].to_i).abs > 20
      number += 1
    end
  }


  if number == b.length
    b << a[weizhi]

  end
}

puts b


为什么输出b:
2
31
45
345
567
85
234
77
89
135
653
为什么会有31,45 和77,89呢?他们之间的绝对差小于20阿


我就是要安装a数组的顺序,筛选出他们任意之间的绝对差都大于20的
2008年12月30日 17:32

2个答案 按时间排序 按投票排序

0 0

采纳的答案

最糟糕的地方多半是b.each后的block里面的b[mei]吧。
Array#each是用来枚举数组里的每个元素而不是每个下标的。要枚举下标用Array#each_index。

Ruby里[]就等同于Array.new,而新建数组后马上赋予一个固定的元素也可以直接用字面量表示:

b = [a[0]] # b = Array.new; b[0] = a[0]

(1..a.length-1)可以写成(1...a.length)。不过更直观的还是直接用a.each_index好了。
楼主想写的多半是这样的代码吧……
a = [2,3,4,5,12,31,45,7,8,2,345,567,85,234,56,77,89,135,653]

b= [a[0]]

a.each do |aElem|
  failed = false
  b.each do |bElem|
    unless (bElem - aElem).abs > 20
      failed = true
      break
    end
  end
  b << aElem unless failed
end

puts b

2008年12月30日 18:10
0 0

     if (b[mei].to_i - a[weizhi].to_i).abs > 20 
改为
     if (mei.to_i - a[weizhi].to_i).abs > 20 

2008年12月31日 05:43

相关推荐

    奇怪的是:来自Ruby程序的查询方法调用

    基于Querly-基于模式的Ruby检查工具 Querly是一种查询语言和工具,可以从Ruby程序中找出方法调用。 定义规则以使用模式检查您的程序,以找出不良之处。 从程序中找到匹配的部分。总览您的项目可能有许多本地规则: ...

    ruby_jard:另一个Ruby调试器。 提供丰富的终端用户界面,该界面可视化您的所有需求,愉快地导航程序,仅在特定地点停止,减少了人工和脑力劳动。 您现在可以专注于实际调试

    Ruby Jard提供了一个丰富的Terminal UI,可可视化您的所有需求,愉快地导航程序,仅在特定地点停止,减少了人工和脑力劳动。 现在,您可以专注于真正的调试。 请访问了解更多信息。 注意:Ruby Jard仍在大量开发中...

    jungle-rails:使用Ruby on Rails构建的电子商务应用程序

    最终产品技术一个使用Rails 4.2构建的电子商务应用程序,使用了惯用的Ruby和Rails实践。 这个应用程式在前端使用HTML,SCSS和JS; 后端是Ruby on Rails和PostgreSQL。依存关系Rails 4.2 PostgreSQL 9.x 条纹丛林特色...

    简单谈谈Ruby的private和protected

    下面这段程序让我纠结了很久,Ruby中private的概念真的很奇怪。。。 class Test private def test_print puts 'test' end end class Test2 &lt; Test xss=removed&gt; 这里加上self就不能调用,private method `test_...

    rff:Ruby宝石,可使用FFmpeg对HTML5进行简单的音频和视频转换

    rff-一个使用FFmpeg对HTML5进行简单音频和视频转换的Ruby宝石 简介 您是否对处理音频和视频转换的过时,无法正常工作的宝石感到厌倦? 您是否正在寻找一些简单的媒体文件转换Rails应用程序,以HTML5格式? 如果是...

    四天学会Ajax.rar

    十八个月前,Ruby 成了关注的中心,不知道 Ruby 的程序员只能坐冷板凳了。今天,如果想跟上最新的技术时尚,那您的目标就是 Ajax。 但是,Ajax 不仅仅 是一种时尚,它是一种构建网站的强大方法,而且不像学习一种...

    i18n-debug:是否想过Rails,gem或只是您的应用程序正在查找哪些翻译? 不再感到奇怪!

    例如,Rails的隐式翻译是一个不错的功能。 但是有时候,以Order内嵌套形式获取BillingAddress的street属性的键可能很棘手,因为它很难在第一次尝试时就获得正确的结果。 此示例的密钥为activerecord.attributes....

    essai_js_rhomobile

    我构建了最小的应用程序,在 ruby​​ 应用程序中使用 js 管理暴露了一个奇怪的行为:在主屏幕上,我设计了一个带有 onclick js 函数的按钮,用于修改 div 中的 html。 那个屏幕没问题。 我创建了一个小模型。 在主...

    Agile Web Development

    通过上述内容的深入分析,我们可以看到《Agile Web Development with Rails》这本书旨在为读者提供一个全面了解Ruby on Rails及其在敏捷开发环境中应用的平台。无论是初学者还是经验丰富的开发者,都能够从中获得有...

    gute-Idee:一个网络应用程序,可捕捉您的才华横溢(它们总是在最奇怪的时期出现)。 组织他们,激发他人灵感,然后完成他们

    这款应用的核心功能是为用户提供一个方便、高效的平台来记录、整理和分享他们的想法,进而激发他人的创新灵感。 在日常生活中,我们常常在最不期待的时候涌现出许多独特的想法,可能是清晨醒来的一刹那,或者是在...

    多重环境部署:使用Terraform,Ansible和Packer将复杂的Web应用程序部署到AWS的完整示例

    这是如何将实际的复杂Web应用程序部署到AWS的示例... 博客文章将给出了一个示例。 情境 这些模块涵盖以下方案: EC2 + RDS 具有公共,私有和数据库子网的虚拟私有云(VPC) 应用程序在公共子网中的EC2实例中运行 RDS

    A Guide to Testing the Rails.pdf

    Test/Unit是Ruby自带的一个单元测试框架,通过引入`test/unit`模块,开发者即可开始编写测试用例。一个基础的测试类示例如下: ```ruby require 'test/unit' class HelloTestCase def test_hello assert true ...

    lazypager-rails:用于 Ruby on Rails 的无限滚动页面延迟加载插件

    当元素切换器出现在视口中时,只有一个对服务器的请求(当我测试时,其他库出于一些奇怪的原因发出了 5-7 个请求) 带有新加载元素集合的回调函数。 您只能对元素的新部分执行任何 javascript 后期操作。 如果页面...

    gstreamer on android

    GStreamer是一个基于管道(Pipeline)的多媒体框架,它具有跨平台性和开源特性。GStreamer支持多种语言绑定,例如Python、C++、.NET、Perl、Ruby等,并拥有稳定的API/ABI,采用LGPL许可协议。它可以在Linux、Solaris...

    orienteering_app

    在运行Unix脚本时使用Windows行尾可能会产生奇怪的结果... 从头开始安装所有内容。 如果要在没有Vagrant虚拟机安装依赖项的计算机上进行开发(Ruby 2.1.3,ImageMagik,PostgreSQL)。 运行bundle install在应用...

    FREEBSD7.0 系统恢复安装图解

    FREEBSD7.0系统遭遇更新问题,导致系统功能异常,如核心升级后出现奇怪结果,debug模式开启,fusefs-ntfs挂载NTFS硬盘出错,甚至最基本的ls命令都无法使用。面对这种情况,通常需要恢复安装以修复系统。下面将详细...

    ØMQ - The Guide - ØMQ - The Guide.pdf

    看来这是一个公平的交易。ØMQ中的“zer”原本意味着“零代理(zerobroker)”和“零延迟(zerolatency)”。 教程的每一章节都涉及了ØMQ的不同方面和特性,包括套接字的使用、连接模式、消息模式等。它不仅在...

    vfa-deploy-on-day-1-vfa-2018-v2

    现在,如果您像我一样,您可能会感到奇怪,并想:“我正在制作一个Web应用程序吗?!?!”答案是不。您只使用HTML和文件结构。您不需要了解此项目的Rails,JavaScript甚至Ruby。无需惊慌。冷静!说真的,你让我们...

    item-mirror-angular-demo:angular 和 itemMirror 一起使用的演示和教程

    安装 机器依赖 为了使一切正常工作,需要执行两种类型的安装。 存在应用程序本身的依赖项,并且存在实际... 这不是运行所必需的,但如果没有它,应用程序将看起来很奇怪。 特别是在 Windows 上,这可能很难安装 Grunt-C

    tilt-php:对 Tilt 的 PHP 模板支持

    当你可以使用很好的普通 PHP 时,你为什么要使用任何奇怪的模板系统? 现在你也可以在 Ruby 中做到了!... 警告这个存储库是一个笑话。 不要在生产中使用它 去做 ActionView 模板处理程序 测试!

Global site tag (gtag.js) - Google Analytics