首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Ruby 1.9的bug? - Array.permutation

Ruby 1.9的bug - Array.permutation

在Ruby 1.9版本中,Array.permutation方法存在一个已知的bug。该方法用于生成数组的所有排列组合。然而,在某些情况下,该方法会返回一个错误的结果。

具体来说,当数组中存在重复元素时,Array.permutation方法会导致结果中出现重复的排列。这是由于在1.9版本中,该方法没有正确处理重复元素的情况。

为了解决这个bug,可以考虑升级到Ruby的更高版本,如2.0以上的版本。在较新的版本中,该bug已经修复。

如果需要在Ruby 1.9版本中使用Array.permutation方法,并且避免重复排列的问题,可以自行编写代码来处理。一种解决方案是使用Set数据结构来存储唯一的排列结果,然后将其转换为数组返回。

以下是一个示例代码,用于在Ruby 1.9版本中修复Array.permutation方法的bug:

代码语言:ruby
复制
require 'set'

def unique_permutations(array)
  set = Set.new
  array.permutation.each do |perm|
    set << perm
  end
  set.to_a
end

# 示例用法
array = [1, 2, 2]
result = unique_permutations(array)
puts result.inspect

在上述示例中,我们使用Set数据结构来存储唯一的排列结果,避免了重复排列的问题。

对于Ruby 1.9版本的用户,推荐使用腾讯云的云服务器CVM来部署Ruby应用。腾讯云的云服务器提供稳定可靠的计算资源,支持多种操作系统和应用部署方式。您可以通过以下链接了解更多关于腾讯云云服务器的信息:腾讯云云服务器CVM

请注意,以上答案仅针对Ruby 1.9版本中Array.permutation方法的bug进行了解释和解决方案提供。对于其他云计算、IT互联网领域的问题和名词,您可以提供具体的问题和要求,我将尽力为您提供完善且全面的答案。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Logstash2.3.4趟坑之集成Redis哨兵模式

>, :backtrace=>["/home/search/logstash-2.3.4/vendor/jruby/lib/ruby/1.9/uri/generic.rb:214:in `initialize...'" Logstash自带ruby1.9版本,自带集成redis插件也是最新redis-rb3.3.1 Logstash里面默认自带了redis插件,也就是redis-rb3.3.1 如果没带可以进入...masterName在ruby1.9中必须不能带下划线,否则会报下面的异常: 错误用法 :url => 'redis://redis_master_10214' <URI::InvalidURIError...472 http://stackoverflow.com/questions/2180465/can-domain-name-subdomains-have-an-underscore-in-it 目前在ruby1.9...版本中发现此bug,使用最新版本ruby2.3.0则没有此问题,说明在高版本ruby中 已经修复了此问题,但是logstash最新版本绑定jruby版本是1.9ruby,所以还存在此问题,只能在使用时避免

93180

Python 和 Ruby 对比

ruby还没有python“自省”能力,没有从程序文件中生成文档能力。  ruby没有国际化支持。国际化支持在ruby计划中。这是因为ruby历史比python要短造成。 ...Ruby语法非常灵活,Matz设计ruby出发点也是为了coding for fun,因此可以用ruby玩出来很多花样,运用足够技巧,可以用Ruby写出来逼近自然语言DSL,对于程序员来说,玩ruby...2、Python解析器实现更成熟,第三方库质量高   Ruby1.9解析器尽管已经有了很大性能提升和很多新功能,但是从源代码实现角度来说,基本上是通过在Ruby1.8源代码上打patch来增加功能...从源代码结构来说,Ruby实现太古老了,Ruby扩展起来比较困难,只能不断打patch。这也是为什么现在Ruby社区涌现出来那么多新Ruby解析器实现原因。...正是由于Ruby解析器和Ruby类库制约,Ruby应用主要局限在Web开发领域,目前Ruby应用还无法延伸到web开发领域以外很多地方。

1.3K20

A quick introduction to innodb_ruby (2.对innodb_ruby简单介绍)

本文基于2014年3月innodb_ruby0.8.8版本。 在前文《学习innoDB核心之旅》中,我在innodb_ruby项目中引入了一个新库和命令行工具。现在我来展示一下他一些功能。...我不会尝试解释所有公开innoDB结构,因为那会让演示偏离我本意。我们稍后会再来介绍这些结构。 安装 innodb_ruby 如果你熟悉ruby和gems或者你恰好有一个良好配置ruby环境。...我会定期讲innodb_ruby gems推送到RubyGems中,所以你只需要执行: gem install innodb_ruby 如果这还不起作用,你肯能需要检查下RubyGems手册,重试你安装工作...用一点Ruby创建并填充一个非常简单表。 #!...解读行数据 为了在检查真正时候真正有用,需要为innodb_ruby提供一些理解表模式方法。

81710

JDK1.9-List子类

元素增删慢,查找快,由于日常开发中使用最多功能为 查询数据、遍历数据,所以 ArrayList 是最常用集合。...但是正常来说ArrayList增加是直接加在最后一个,所以其实性能也不能算是慢,删除时候如果根据索引进行删除才有可能会变慢一些,但是如果是根据索引进行倒序删除,那其实性能也不会有太大区别的 3.2...方便元素添加、删除集合。 LinkedList是一个双向链表,那么双向链表是什么样子呢,我们用个图了解下 ?...实际开发中对一个集合元素添加与删除经常涉及到首尾操作,而LinkedList提供了大量首尾操作方法。...LinkedList是List子类,List中方法LinkedList都是可以使用,这里就不做详细介绍,我们只需要了解LinkedList 特有方法即可。

29230

java与ruby直观比较

以前花过一段时间学习ruby,还顺便写了个股票爬虫,搭了数据展示网站,这次回顾一下以前知识点,将ruby与java作个简单而直观比较,这样有助于更深入地理解java。...实现同样一个输出功能,ruby代码行数小于java,也许,正是出于简洁性考虑,java8出了lambda表达式。...void repair(Car car){ } Ruby: def repair(c) end 5、rubyAop与Ioc AOP和依赖注入在ruby中是小菜一碟,但在java程序员而言...拦截器 目的:不修改代码,动态改变已定义类行为,它支持AOP所需大多数功能。 (Ruby 2.0)能够在之前、之后和包装与Ruby方法钩连。...,主要是依赖注入,java需要 Ioc service Provider专门管理,方便自动化测试 在ruby中,依赖注入是不必要,它很容易修改运行中类定义,你不需要在应用中添加新一层复杂性,就可以注入新行为

1.1K70

JDK1.9-异常处理

异常处理 Java异常处理五个关键字:try、catch、finally、throw、throws 2.1 抛出异常throw 在编写程序时,我们必须要考虑程序出现问题情况。...那么,当调用方法使用接受到参数时,首先需要先对参数数据进行合法判断,数据若不合法,就应该告诉调用者,传递合法数据进来。这时需要使用抛出异常方式来告诉调用者。...在方法中使用try-catch语句块来处理异常。 try-catch方式就是捕获异常。 捕获异常:Java中对异常有针对性语句进行捕获,可以对出现异常进行指定方式处理。...包含了异常类型,异常原因,还包括异常出现位置,在开发和调试阶段,都得使用printStackTrace。...而finally就是解决这个问题,在finally代码块中存放代码都是一定会被执行。 什么时候代码必须最终执行?

43130

java与ruby直观比较

以前花过一段时间学习ruby,还顺便写了个股票爬虫,搭了数据展示网站,这次回顾一下以前知识点,将ruby与java作个简单而直观比较,这样有助于更深入地理解java。...实现同样一个输出功能,ruby代码行数小于java,也许,正是出于简洁性考虑,java8出了lambda表达式。...: 共1行 2、ruby代码块 本质:高阶函数一种特殊形式,类似于java匿名内部类 特点:1、使用时定义 2、可引用外部局部变量(闭包) java:使用偏重匿名内部类,不通用 Execute(...: def repair(c) end 5、rubyAop与Ioc AOP和依赖注入在ruby中是小菜一碟,但在java程序员而言,却要学习新编程模型,处理XML,引进复杂语法。...拦截器 目的:不修改代码,动态改变已定义类行为,它支持AOP所需大多数功能。 (Ruby 2.0)能够在之前、之后和包装与Ruby方法钩连。

1.5K50

JDK1.9-数组常见操作

在开发中,数组越界异常是不能出现,一 旦出现了,就必须要修改我们编写代码。 3.2 数组空指针异常 观察一下代码,运行后会出现什么结果。...在开发中,数组越界异常是不能出现,一旦出现了,就必须要修 改我们编写代码。...空指针异常在内存图中表现 3.3 数组遍历【重点】 数组遍历: 就是将数组中每个元素分别获取出来,就是遍历。遍历也是数组操作中基石。...实现思路: 定义变量,保存数组0索引上元素 遍历数组, 获取出数组中每个元素 将遍历到元素和保存数组0索引上值变量进行比较 如果数组元素值大于了变量值,变量记录住新值 数组循环遍历结束...,变量保存就是数组中最大值 3.5 数组反转 数组反转: 数组中元素颠倒顺序,例如原始数组为1,2,3,4,5,反转后数组为5,4,3,2,1 实现思想:数组最远端元素互换位置。

33630

辨析 Ruby Method 与 Proc

但是,Ruby函数并没有其他动态语言中那么简单,它提供了 Method 与 Proc 两个类来表示函数概念,对于这两个类区别无论是官方文档还是 Stackoverflow 上问题,解释都非常模糊...在其他语言函数很习以为常用法在 Ruby 中却行不通,就其原因还是不清楚这两个类区别,希望这篇文章能够帮助大家理解好 Ruby“函数”概念,做到深入浅出,与其他函数式语言融会贯通。...但有一点需要注意,block 仅仅是 Ruby 提供一语法糖衣,并不把其赋值给某一变量。如果自定义函数需要调用传入block,需要采用yield方式。...map(myinc, [4,5,6]) # => [5, 6, 7] Ruby 中与其对应是过程(Proc),与上面功能等价 Ruby 代码为: myinc = Proc.new {|num...,与其他动态语言函数等价 Method 专为面向对象设计,消息传递第一个参数 弄清 Method 与 Proc 区别后,不得不欣赏 Ruby 语言设计巧妙,兼具函数式与面向对象精髓。

90720

Bundler与Gemfile最佳实践 | Ruby

Only specify top-level dependencies 一般gem都会在spec里写明其所依赖gems有哪些,并且bundler在安装时候自动分析他们之间关系,所以大可不必去关心其中底层依赖...end # Bad gem 'web-console', group: :development gem 'spring', group: :development Resist the urge to Ruby...Gemfile有自己DSL,所以不要在Gemfile里炫技使用Ruby语法,这里炫技并不能帮你提升什么性能,写通俗易懂才是大众喜闻乐见。...不过天朝环境下这个用法很好用: if ENV['USE_OFFICE_GEM_SOURCE'] source 'https://rubygems.org' else source 'https://gems.ruby-china.org...gem主分支,今儿会错过很多必要更新和一些新特性 相比语义化版本而言,git提供hash值让人很难搞懂版本之间关系 更好解决方法是给原gem提issue、patch,这样可以营造一个更好开源环境

92020

Ruby 和 Java 基础语法比较

,你将获得和了解: Ruby 语言基本语法和使用方式 Java 语言基本语法和使用方式 从老司机角度分析和讲解 Ruby 和 Java 语言语法特点和区别 它们各自适合并且擅长应用场景 网上单独介绍...Ruby ,Java 文章应该很多,但是对比两种编程语言基本语法使用文章应该不多见,写这篇文章目的主要是对自己近期几个月学习 Ruby 做总结和回顾,我之前最熟悉编程语言是 Java,我个人认为合格程序员应该掌握多门语言...都是使用 Ruby 作为开发语言,Ruby 是一门很灵活也很优雅动态语言,解释运行,有兴趣了解同学可以点开 链接 查看维基百科词条,Ruby 语法精炼,做相同事情代码行数通常会比 Java 要短多...通过一个简单 Hello World 程序你就可以发现两者明显区别: Ruby 执行是从上到下顺序执行,main 方法则是 Java 程序唯一入口 Ruby 不必用 ; 号结束符,不必使用 {}...Ruby 条件判断 if/unless 放在代码后面,程序看上去可以更加紧凑和简洁 循环 Ruby 循环结构语句比较丰富,相比 Java 只有 for,while 两种循环方式来说,Ruby可用循环方法有

2.2K20

Bug之路-DruidBug

Bug之路-DruidBug 笔者很热衷于解决Bug,同时比较擅长(网络/协议)部分,所以经常被唤去解决一些网络IO方面的Bug。...现在就挑一个案例出来,写出分析思路,以飨读者,希望读者在以后工作中能够少踩点坑。 前言 此Bug是Druid低版本Bug,此Bug至少在1.0.12版本就已经修复。...DruidBug现场 在紧张新项目开发日子里,突然收到线上某系统大量报警,对应系统的人员发现此系统在某一台机器上dump了大量error日志。...Sharding ProxyBug 于是此问题又萦绕在笔者心头,在又一番不下于上述过程努力之后,发现一个月之前上线新版本Sharding Proxy内存泄露Bug导致频繁GC(并定位内存泄露点...终于这次连环Bug算是填完了。 总结 追查Bug,日志和源码是最重要两个部分。最源头日志信息量最大,同时要对任何不同寻常现象都加以分析并推测,最后结合源码,才能最终找出Bug

1K50

【改BUG】项目遇到奇葩bug

问题 今天,我下级代理联系我说,我们平台,应用服务批量导入后,用户密码含有“0”都不显示,例如密码是“07121239”但是平台只显示“7121239”,今天做了下排查,本文仅记录一下今天排查经历...排查前端 在前端加了个调试后密码依然是含“0”,那就说明问题应该在后端 排查后端 由于项目是原生php写,部分代码,就直接通过[说明]跳过,更改之前部分代码 代码返回是一个json,但是数据返回password是“123456”,于是我重新打印了sql查询语句,发现数据是“0123456”,说明应该不是sql查询问题,往下排查除了“json_encode...102.55156461759","latitude":"24.359801443673","vip_data":"2023-07-10 16:22:03","vip_info":"false"}} bug...> 看下修改后结果: password显示“0123456” {"code":100,"msg":"\u67e5\u8be2\u6210\u529f","data":{"id":"45","phone

16810

ruby学习笔记(6)-Array使用

ruby数组基本使用,跟c#中数组比起来,最不习惯区别在于允许负索引(跟javascript到有几分相似) arr=[3,4,5,6,7,8,9] puts arr[0] # 3 puts arr.first...print arr[-3,2] ,"\n" #倒数第三个元素开始,连续取2个元素,即7,8 复杂一点应用如下,这里要特意指出是,ruby数组天生就已经实现了堆栈与队列,这一点想得很周到....#来自"Ruby语言入门教程v1.0"中E8.1-3.rb arr=[4,5,6] print arr.join(", "),"\n" # 4, 5, 6 arr[4] = "m" #将第...将元素f,2加入到数组最后,类似前面的push用法 print arr.join(", "),"\n" # 7, h, d, m, f, 2 arr.pop #弹出一个元素,与前面的push结合起来,ruby...\n" #h, d, m, f arr.clear #清空元素 print arr.join(", "),"\n" 最后讲一个要注意地方:arrayeach与delete一起用时,有时候会出现意想不到效果

86550

innodb_ruby 研究innodb 存储结构

下载工具 https://github.com/jeremycole/innodb_ruby 导入测试数据 https://github.com/xiazemin/-innodb_ruby_study...FSP_HDR类型页file space header部分存储了整个表空间一些属性和5个链表基节点。 前3个链表基节点是表空间中碎片区对应XDES Entry结构构成3个链表基节点。...后2个链表基节点是表空间中段(Segment)对应INODE结构所在INODE页构成2个链表基节点。 链表基节点大小为16字节。...存储本组所有的区所有页面INSERT BUFFER信息。 3、INODE类型页 表空间第一个组第一个区第3页是FILE_PAGE_INODE类型页,简称INODE类型页。...add_time: "184524556-52-49 32:71:04" 参考 https://xiazemin.github.io/MyBlog/storage/2021/03/14/innodb_ruby.html

36210
领券