ruby

RubyでOAuth1.0のrequest tokenを取得

テスト用に使ったコード。 REQUEST_TOKEN_URI = 'https://api.twitter.com/oauth/request_token' CALLBACK_URI = 'http://localhost/callback' CONSUMER_KEY = '**********************' CONSUMER_SECRET = '**********************' や場合によってはいろい…

Rubyでn桁の円周率を求める

検証用に使っていた物です。 len = ARGV[0].to_i B = 10 ** len B2 = B << 1 pi = (len * 8 + 1).step(3, -2).inject(B) {|a, i| (i >> 1) * (a + B2) / i} - B puts "3.#{pi}" # time ruby pi.rb 100 3.14159265358979323846264338327950288419716939937510…

Floatクラスで基数指定付きto_s

ちょっと必要だったので、小数も指定基数でto_sできるようにしてみた。 ただ、指定基数によっては無限小数になる場合があるので、第2引数でto_sの最大長を指定できるようにしてみた。 class Float alias :to_s10 :to_s def to_s(base=10, max=20) raise Arg…

Pascalの三角形をやてみた

http://rubyist.g.hatena.ne.jp/moira/20090729/1248837435 を見て別のアプローチで再帰使わずにやってみた。 (階乗の計算では再帰使っているけどw かなり速い!! class Numeric def fact return 1 if self.zero? return @cache until @cache.nil? @cache …

Project Euler Problem 50

問題 The prime 41, can be written as the sum of six consecutive primes: 41 = 2 + 3 + 5 + 7 + 11 + 13 This is the longest sum of consecutive primes that adds to a prime below one-hundred. The longest sum of consecutive primes below one-thou…

Project Euler Problem 49

問題 The arithmetic sequence, 1487, 4817, 8147, in which each of the terms increases by 3330, is unusual in two ways: (i) each of the three terms are prime, and, (ii) each of the 4-digit numbers are permutations of one another. There are n…

Project Euler Problem 48

問題 The series, 1^1 + 2^2 + 3^3 + ... + 10^10 = 10405071317. Find the last ten digits of the series, 1^1 + 2^2 + 3^3 + ... + 1000^1000. ソース puts (1..1000).inject(0){|s, i| s + i**i} % (10 ** 10) 解答 9110846700 感想 ここまで来て1行プ…

Project Euler Problem 47

問題 The first two consecutive numbers to have two distinct prime factors are: 14 = 2 × 7 15 = 3 × 5 The first three consecutive numbers to have three distinct prime factors are: 644 = 2^2 × 7 × 23 645 = 3 × 5 × 43 646 = 2 × 17 × 19. Find …

Project Euler Problem 46

問題 It was proposed by Christian Goldbach that every odd composite number can be written as the sum of a prime and twice a square. 9 = 7 + 2×1^2 15 = 7 + 2×2^2 21 = 3 + 2×3^2 25 = 7 + 2×3^2 27 = 19 + 2×2^2 33 = 31 + 2×1^2 It turns out tha…

Project Euler Problem 45

問題 Triangle, pentagonal, and hexagonal numbers are generated by the following formulae: Triangle T(n)=n(n+1)/2 1, 3, 6, 10, 15, ... Pentagonal P(n)=n(3n−1)/2 1, 5, 12, 22, 35, ... Hexagonal H(n)=n(2n−1) 1, 6, 15, 28, 45, ... It can be ve…

Project Euler Problem 44

問題 Pentagonal numbers are generated by the formula, P_(n)=n(3n−1)/2. The first ten pentagonal numbers are: 1, 5, 12, 22, 35, 51, 70, 92, 117, 145, ... It can be seen that P(4) + P(7) = 22 + 70 = 92 = P(8). However, their difference, 70 −…

Project Euler Problem 43

問題 The number, 1406357289, is a 0 to 9 pandigital number because it is made up of each of the digits 0 to 9 in some order, but it also has a rather interesting sub-string divisibility property. Let d(1) be the 1st digit, d(2) be the 2nd …

Project Euler Problem 42

問題 The n'th term of the sequence of triangle numbers is given by, t(n) = 1/2 n(n+1); so the first ten triangle numbers are: 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... By converting each letter in a word to a number corresponding to its alp…

Project Euler Problem 41

問題 We shall say that an n-digit number is pandigital if it makes use of all the digits 1 to n exactly once. For example, 2143 is a 4-digit pandigital and is also prime. What is the largest n-digit pandigital prime that exists? ソース cla…

Project Euler Problem 40

問題 An irrational decimal fraction is created by concatenating the positive integers: 0.123456789101112131415161718192021... It can be seen that the 12th digit of the fractional part is 1. If d(n) represents the n'th digit of the fraction…

Project Euler Problem 39

問題 If p is the perimeter of a right angle triangle with integral length sides, {a,b,c}, there are exactly three solutions for p = 120. {20,48,52}, {24,45,51}, {30,40,50} For which value of p &#8804; 1000, is the number of solutions maxim…

Project Euler Problem 38

問題 Take the number 192 and multiply it by each of 1, 2, and 3: 192 × 1 = 192 192 × 2 = 384 192 × 3 = 576 By concatenating each product we get the 1 to 9 pandigital, 192384576. We will call 192384576 the concatenated product of 192 and (1…

Project Euler Problem 37

問題 The number 3797 has an interesting property. Being prime itself, it is possible to continuously remove digits from left to right, and remain prime at each stage: 3797, 797, 97, and 7. Similarly we can work from right to left: 3797, 37…

Project Euler Problem 36

問題 The decimal number, 585 = 1001001001_(2) (binary), is palindromic in both bases. Find the sum of all numbers, less than one million, which are palindromic in base 10 and base 2. (Please note that the palindromic number, in either base…

Project Euler Problem 35

問題 The number, 197, is called a circular prime because all rotations of the digits: 197, 971, and 719, are themselves prime. There are thirteen such primes below 100: 2, 3, 5, 7, 11, 13, 17, 31, 37, 71, 73, 79, and 97. How many circular …

Project Euler Problem 34

問題 145 is a curious number, as 1! + 4! + 5! = 1 + 24 + 120 = 145. Find the sum of all numbers which are equal to the sum of the factorial of their digits. Note: as 1! = 1 and 2! = 2 are not sums they are not included. ソース class Intege…

Project Euler Problem 33

問題 The fraction 49/98 is a curious fraction, as an inexperienced mathematician in attempting to simplify it may incorrectly believe that 49/98 = 4/8, which is correct, is obtained by cancelling the 9s. We shall consider fractions like, 3…

Project Euler Problem 32

問題 We shall say that an n-digit number is pandigital if it makes use of all the digits 1 to n exactly once; for example, the 5-digit number, 15234, is 1 through 5 pandigital. The product 7254 is unusual, as the identity, 39 × 186 = 7254,…

Project Euler Problem 31

問題 In England the currency is made up of pound, £, and pence, p, and there are eight coins in general circulation: 1p, 2p, 5p, 10p, 20p, 50p, £1 (100p) and £2 (200p). It is possible to make £2 in the following way: 1×£1 + 1×50p + 2×20p +…

Project Euler Problem 30

問題 Surprisingly there are only three numbers that can be written as the sum of fourth powers of their digits: 1634 = 1^4 + 6^4 + 3^4 + 4^4 8208 = 8^4 + 2^4 + 0^4 + 8^4 9474 = 9^4 + 4^4 + 7^4 + 4^4 As 1 = 1^4 is not a sum it is not includ…

Project Euler Problem 29

問題 Consider all integer combinations of a^b for 2 <= a <= 5 and 2 <= b <= 5: 2^2=4, 2^3=8, 2^4=16, 2^5=32 3^2=9, 3^3=27, 3^4=81, 3^5=243 4^2=16, 4^3=64, 4^4=256, 4^5=1024 5^2=25, 5^3=125, 5^4=625, 5^5=3125 If they are then placed in nume…

Project Euler Problem 28

問題 Starting with the number 1 and moving to the right in a clockwise direction a 5 by 5 spiral is formed as follows: [21]22 23 24[25] 20 [7] 8 [9]10 19 6 [1] 2 11 18 [5] 4 [3]12 [17]16 15 14[13] It can be verified that the sum of both di…

Project Euler Problem 27

問題 Euler published the remarkable quadratic formula: n^2 + n + 41 It turns out that the formula will produce 40 primes for the consecutive values n = 0 to 39. However, when n = 40, 40^2 + 40 + 41 = 40(40 + 1) + 41 is divisible by 41, and…

Project Euler Problem 26

問題 A unit fraction contains 1 in the numerator. The decimal representation of the unit fractions with denominators 2 to 10 are given: 1/2 = 0.5 1/3 = 0.(3) 1/4 = 0.25 1/5 = 0.2 1/6 = 0.1(6) 1/7 = 0.(142857) 1/8 = 0.125 1/9 = 0.(1) 1/10 =…

Project Euler Problem 22

問題 Using names.txt (right click and 'Save Link/Target As...'), a 46K text file containing over five-thousand first names, begin by sorting it into alphabetical order. Then working out the alphabetical value for each name, multiply this v…