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

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

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

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

364閲覧

配列のランダムな2つの値の差

退会済みユーザー

退会済みユーザー

総合スコア0

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

1グッド

0クリップ

投稿2018/12/30 03:50

data[0]からdata[4],まであるとする
data[1]に置いて
ランダムな2つの値の差が5以下であればパターンとして出力, また個数をカウントするプログラムが作りたいです

4
12
16
18
19
の場合
[12,16][16,18][16,19][18,19]と出力させたいです!!!!!!!!!!!!!

bochan2👍を押しています

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

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

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

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

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

can110

2018/12/30 03:56

「~の場合」と「~と出力」の関係が分かりません。 タイトルの「配列のランダムな2つの値の差」と「パターンとして出力」と「個数をカウント」の具体的な動作の説明について追記ください。
退会済みユーザー

退会済みユーザー

2018/12/30 04:27

data[1]の値が 4 12 16 18 19 であるとする このときランダムな2つの値の差が5以下となるのは パター[12,16] パターン[16,18] pattern[16,19] ぱたーん[18,19]  となるので4パターンあるということ
can110

2018/12/30 04:37

まずdata[0]からdata[4]のうちdata[1]以外は質問には無関係ということですかね? また、「配列のランダムな2つの値の差」というのがよく分かりませんが パターン[16,18]の差は16-18=-2では?であれば5以下なので出力ぱたんには含まれないのでは? また「個数をカウント」はどこにいったのでしょうか?
退会済みユーザー

退会済みユーザー

2018/12/30 05:00

複数のユーザーから「やってほしいことだけを記載した丸投げの質問」という意見がありました 「質問を編集する」ボタンから編集を行い、調査したこと・試したことを記入していただくと、回答が得られやすくなります。
guest

回答1

0

ベストアンサー

ans に ネストした list で得るようにしてみました。
出力書式のこまかなところは工夫をしてみてください。

diff.py

python3

1import itertools 2 3data = [4, 12, 16, 18, 19] 4 5ans = list(map(lambda x: [x[0], x[1]], filter(lambda x: abs(x[0] - x[1]) < 6, itertools.combinations(data, 2)))) 6print(ans) 7 8print(len(ans)) 9print(*ans) 10print(*ans, sep="")

実行例
イメージ説明

追記
すこしシンプルにしてみました。(2つの方法で)

python3

1ans = [[x[0], x[1]] for x in itertools.combinations(data, 2) if abs(x[0] - x[1]) < 6] 2print(ans) # ==> [[12, 16], [16, 18], [16, 19], [18, 19]] 3 4ans = [[x, y]for y in data for x in data if x < y and abs(x - y) < 6] 5print(ans) # ==> [[12, 16], [16, 18], [16, 19], [18, 19]]

投稿2018/12/30 04:39

編集2018/12/30 08:15
katoy

総合スコア22324

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問