ramsey_s_theorem.sf 417 B

123456789101112131415161718192021222324
  1. #!/usr/bin/ruby
  2. #
  3. ## https://rosettacode.org/wiki/Ramsey%27s_theorem
  4. #
  5. var a = 17.of { 17.of(0) }
  6. 17.times{|i| a[i][i] = '-' }
  7. 4.times { |k|
  8. 17.times { |i|
  9. var j = ((i + 1<<k) % 17)
  10. a[i][j] = (a[j][i] = 1)
  11. }
  12. }
  13. a.each {|row| say row.join(' ') }
  14. combinations(17, 4, { |*quartet|
  15. var links = quartet.combinations(2).map{|p| a.dig(p...) }.sum
  16. ((0 < links) && (links < 6)) || die "Bogus!"
  17. })
  18. say "Ok"