重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

Mathematicaの操作に関する質問です。

2つのリストが与えられたとき、このリスト内の要素を重複をカウントして、足し算した形で表したいと考えています。(表記の方法には、特にこだわりはありません。)
例えば、
例){{3}, {1, 2}, {2, 1}, {1, 1, 1}}と{{2, 1}, {1, 1, 1}}の和は、{{3}, {1, 2}, 2{2, 1}, 2{1, 1, 1}}
の様に、結合したいと考えています。

この場合、どのように操作すればよいのかわかりません。お教え頂ければ、大変有り難く存じます。

A 回答 (1件)

最初に与えられるリストが2つに分けられていることに特別な意味がないのなら、


・Joinで1つのリストにして、
・Gatherで重複する要素をまとめ、
・Lengthでカウント
で良いと思います。

たとえば、
{Length[#], First[#]} & /@ Gather[Join[{{3}, {1, 2}, {2, 1}, {1, 1, 1}}, {{2, 1}, {1, 1, 1}}]]
とすれば、
{{1, {3}}, {1, {1, 2}}, {2, {2, 1}}, {2, {1, 1, 1}}}
が得られます。
    • good
    • 0
この回答へのお礼

大変丁寧にお教え頂き有り難うございます。
検証に数日を要し、ご返事が遅くなりました。

本当に有り難うございました。

お礼日時:2015/06/02 08:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!