質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

2回答

616閲覧

難しい...)ピラミッドの何段目かをコマンドラインオプションで指定すると数を出力するプログラム(ruby)

退会済みユーザー

退会済みユーザー

総合スコア0

bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2017/12/22 08:37

編集2017/12/22 09:46

問題(Rubyを使いたいです)

両端に1を置き、左上と右上との数を足すという規則で数を配置していきます。コマンドラインオプションで何段目かを指定すると、その段にあらわれる数をすべて出力するプログラムを作成してください。

ご教授いただけると幸いです。

自分なりの努力,,,(参考になりません)

色々ピラミッドを作るプログラムから解決の糸口はないか等も探しているのですが、
ちょっと難しくて質問をさせてください。
下記のコードは自分が調べただけなので、参考になりません。

二項係数やフィボナッチ。。。この辺がヒントなきがしてきました...。(難しい

def getFibonacciNumber(n) if n < 0 return -1 elsif n == 0 || n == 1 return 1 else return getFibonacciNumber(n-1) + getFibonacciNumber(n-2) end end Benchmark.bm 10 do |r| r.report "No Memorization" do 0.upto(50) do |i| printf("\n%4d:%d", i, getFibonacciNumber(i)) end end end

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

Ruby

1n = 4 2 3arr = [] 4 5n.times do |x| 6 if arr.empty? 7 arr << x + 1 8 else 9 current = [1] 10 (arr.size - 1).times do |i| 11 current << arr[i] + arr[i + 1] 12 end 13 arr = (current << 1) 14 end 15end 16 17p arr # =>[1, 3, 3, 1]

こういうのはどうでしょうか?

投稿2017/12/22 09:16

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/12/22 09:19

すごいですね。。。シンプルですし。。。 今自分でも確かめているのですが、例えばn=5を代入すると、 [1,4,6,4,1]が出力されるのでしょうか。。。すごくシンプル。。。
退会済みユーザー

退会済みユーザー

2017/12/22 09:21

私の環境ではそうなります。nの値を変更してみてください。
退会済みユーザー

退会済みユーザー

2017/12/22 09:22 編集

ありがとうございます!
退会済みユーザー

退会済みユーザー

2017/12/22 09:22

コマンドラインオプションで●段目を指定したいと指示されているのですが、 やはりRubyのファイルを関数にしておくべきなのでしょうか。 def answer(n)...のように。というイメージなのですが。
退会済みユーザー

退会済みユーザー

2017/12/22 09:25 編集

n = ARGV[0].to_iに変更することで sample.rb 5などコマンドラインオプションを 指定できるはずです。 メソッドにするかどうかはご自由にどうぞ。
guest

0

ベストアンサー

高校で習いませんでしたか?

二項係数

投稿2017/12/22 08:51

編集2017/12/22 08:52
namenamenameko

総合スコア234

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/12/22 09:00

なるほど二項係数を使うんですね。。。かなり自分には難しそうです。。。 色々関数を見つけることはできましたが。。。
namenamenameko

2017/12/22 09:06

wikipediaの「二項係数の値の計算」のところに色々なやり方が乗っていると思います。 階乗を計算するだけなのでそこまで難しくなくないですか? https://qiita.com/rtoya/items/6d248b0817acd399603b または「漸化式」のとこの解法でも良いと思います。 https://qiita.com/qqyyhii/items/04c679148111913948a1 どちらも再帰関数(関数の中にその関数を入れて繰り返しを行う)がポイントですね!
退会済みユーザー

退会済みユーザー

2017/12/22 09:12

パスカルの三角形というのがまるで一緒なのがわかりました。 「コマンドラインオプションで何段目かを指定すると、 その段にあらわれる数をすべて出力するプログラムを作成しろ」等もちょっと自分には難しいようです。
namenamenameko

2017/12/22 09:19

ruby 標準入力 とかでググると良いと思います!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問