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

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

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

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

Q&A

解決済

1回答

489閲覧

コラッツ数列のグラフ化について

maritOttsO

総合スコア4

R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

0グッド

0クリップ

投稿2021/11/18 02:25

前提・実現したいこと

Rでコラッツ数列に関して、
・初期値mから1に達するまでの数列
・その数列の軌跡のグラフ
の処理を行う関数Collatz()を定義したいです。

例えば、Collatz(10)と命令をすれば、
・10から始まり1になるまでの数列を出力する処理と
・その数列に関する1までの推移のグラフ出力の処理が行うように関数定義をしたいです。

発生している問題・エラーメッセージ

数列を求める命令はできたのですが、同時にグラフ化する方法が分かりません。
まずは数列とグラフを出力する関数を別々にしようと思いましたが、それもうまくできませんでした。

該当のソースコード

現状は数列のみ出力する関数になっています。

Collatz <- function(m) { cat(m) while (m > 1) { if (m %% 2 == 0) { m = m / 2 } else { m = 3 * m + 1 } cat(",", m) } cat("\n") }

自分では行き詰まっていましましたので、ご教授いただきたく存じます。
どうぞよろしくお願い申し上げます。

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

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

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

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

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

guest

回答1

0

ベストアンサー

まずは数列とグラフを出力する関数を別々にしようと思いましたが、それもうまくできませんでした。

r

1collatz_sequence <- function(m){ 2 sequence <- c(m) 3 while(m > 1) { 4 m <- if (m%%2) 3*m+1 else m/2 5 sequence <- c(sequence, m) 6 } 7 sequence 8} 9 10plot_collatz_sequence <- function(collatz) { 11 plot(collatz, type="l") 12} 13 14collatz_11 <- collatz_sequence(11) 15cat(collatz_11, "\n") 16 17plot_collatz_sequence(collatz_11) 18 19# 2011 34 17 52 26 13 40 20 10 5 16 8 4 2 1

collatz

投稿2021/11/18 02:35

melian

総合スコア19865

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問