FindRepeat[list]
list を与えるのに繰り返される最小の部分リストまたは部分配列を与える.
FindRepeat[list,n]
list 内で部分リストが少なくとも n 回繰り返されなければならない.
FindRepeat[list,{n1,n2,…}]
list のレベル i で少なくとも ni回繰り返されなければならない.
FindRepeat["string"]
繰返しによって string を与える最小の部分文字列を求める.
FindRepeat["string",n]
部分文字列は少なくとも n 回繰り返されなければならない.
FindRepeat
FindRepeat[list]
list を与えるのに繰り返される最小の部分リストまたは部分配列を与える.
FindRepeat[list,n]
list 内で部分リストが少なくとも n 回繰り返されなければならない.
FindRepeat[list,{n1,n2,…}]
list のレベル i で少なくとも ni回繰り返されなければならない.
FindRepeat["string"]
繰返しによって string を与える最小の部分文字列を求める.
FindRepeat["string",n]
部分文字列は少なくとも n 回繰り返されなければならない.
詳細とオプション
- FindRepeat[expr]は,繰返しが見付からなかったときは,expr を与える.
- FindRepeat[list,2]は,繰返しが見付からなかったときは,{}を与える.FindRepeat["string",2]は""を与える.
- FindRepeat[expr]のときは,expr の末尾に不完全な繰返しがあってもよい.
- FindRepeat[expr,n]は,少なくとも n 回の完全な繰返しを必要とする.
- FindRepeat[list]はFindRepeat[list,Table[1,ArrayDepth[list]]]に等しい.
- リスト{n1,n2,…}の長さはArrayDepth[list]以下でなければならない.
- FindRepeatはSparseArrayオブジェクトや構造配列オブジェクトに使うことができる.
- FindRepeatは,連想に使われると,事実上そのキーを無視して,繰り返されたブロックの最初の発現に対応するキーがある連想を返す.
- FindRepeat[list,{n1,n2,…,nk},SameTest->test]は,レベル k の要素の各ペアに test を適用して両者を同じとみなすべきかどうかを決定する.
例題
すべて開く すべて閉じる例 (4)
FindRepeat[{1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4}]FindRepeat[{1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3}]FindRepeat[{1, 2, 1, 2, 1, 2, 1, 2}, 4]FindRepeat[{1, 2, 1, 2, 1, 2, 1, 2}, 5]mat = ArrayPad[{{a, b, c}, {d, e, f}}, 2, "Periodic"];
MatrixForm[mat]FindRepeat[mat]//MatrixFormstr = StringRepeat["hello", 10]FindRepeat[str]スコープ (10)
1引数の形 (8)
任意のタイプの要素からなるリストの中で繰り返された部分を求める:
FindRepeat[{a, b, a, b, a, b}]FindRepeat[{1, 2, 3, 4, 1, 2, 3, 4, 1}]FindRepeat[{1, a, {}, f[2], 1, a, {}, f[2]}](mat = Table[Mod[i, 3] + Mod[j, 4], {i, 0, 8}, {j, 0, 8}])//MatrixFormFindRepeat[mat]//MatrixFormarr = Table[Sin[i π] + Cos[j π / 3] + Sin[k π / 2], {i, 0, 10}, {j, 0, 10}, {k, 0, 10}];FindRepeat[arr]FindRepeatはSparseArrayに使うことができる:
sa = SparseArray[{{i_, j_} /; {Mod[i, 6], Mod[j, 4]} === {0, 0} -> 1}, {100, 100}]FindRepeat[sa]FindRepeatはQuantityArrayに使うことができる:
qa = QuantityArray[ArrayPad[{{1, 2, 3}, {4, 5, 6}}, 100, "Periodic"], "Meters"]FindRepeat[qa]FindRepeat[<|a -> 1, b -> 2, c -> 1, d -> 2, e -> 1, f -> 2|>]FindRepeat["abcdabcdabcdabcdabcd"]2引数の形 (2)
list = ArrayPad[{1, 2, 3}, 4, "Periodic"]FindRepeat[list, 3]FindRepeatは,条件を満たす部分リストがない場合は空リストを返す:
FindRepeat[list, 4]arr = Table[Mod[i, 3] + Mod[j, 4] + Mod[k, 2], {i, 0, 7}, {j, 0, 7}, {k, 0, 7}];
Dimensions[arr]FindRepeat[arr, {1}] === Take[arr, 3]FindRepeat[arr, {1, 1}] === Take[arr, 3, 4]FindRepeat[arr, {1, 1, 1}] === Take[arr, 3, 4, 2]FindRepeat[arr]は,これらの中の最も深いものと等価である:
FindRepeat[arr]% === FindRepeat[arr, {1, 1, 1}]オプション (4)
SameTest (4)
FindRepeat[{1, 2, -3, -1, 2, 3, -1, -2}, SameTest -> (Abs[#1] == Abs[#2]&)]Floorに基づいた同値類を使う:
FindRepeat[{1, 2, 3, 1.5, 2.8, 3.7, 1.1, 2.6}, SameTest -> (Floor[#1] == Floor[#2]&)]リスト要素のTotalを使う:
FindRepeat[{{1, 2}, {5, -2}, {2, 1}, {0, 3}, {-1, 4}}, {1}, SameTest -> (Total[#1] == Total[#2]&)]FindRepeat[list,{n1,…,nk},SameTest->test]では,関数 test がレベル k の list の要素に適用される:
mat = {{1, 2}, {1, 3}, {1, 4}};FindRepeat[mat, {1}, SameTest -> (Min[#1] == Min[#2]&)]FindRepeat[mat, {1, 1}, SameTest -> (Min[#1] == Min[#2]&)]アプリケーション (6)
arr = Table[Mod[i, 2] + Mod[j, 5] + Mod[k, 4], {i, 20}, {j, 20}, {k, 20}];repeatedblock = FindRepeat[arr]ブロックが繰り返された回数を指定することで,もとの配列を再構築する:
repetitions = Dimensions[arr] / Dimensions[repeatedblock]KroneckerProduct[ConstantArray[1, repetitions], repeatedblock] === arrMatrixPlotで配列の繰り返されたブロックを可視化する:
arr = ArrayPad[{{1, 2, 3}, {4, 5, 6}}, {6, 6}, "Periodic"];
MatrixPlot[arr]repeat = FindRepeat[arr];
MatrixPlot[repeat]dates = DateRange[Today, Today + Quantity[100, "Years"], "Month", CalendarType -> "Jewish"];months = Comap[dates, "MonthName"];
Length[months]repeat = FindRepeat[months];
Length[repeat]このコードは,指定された年のユリウス暦による復活祭の日付を与える:
JulianEasterSunday[year_] := Module[{a, b, c, d, e, month, day},
a = Mod[year, 4];
b = Mod[year, 7];
c = Mod[year, 19];
d = Mod[19c + 15, 30];
e = Mod[2a + 4b - d + 34, 7];
month = Quotient[d + e + 114, 31];
day = Mod[d + e + 114, 31] + 1;
DateObject[{year, month, day}, CalendarType -> "Julian"]
]2017年は,ユリウス暦の4月3日,すなわちグレゴリオ暦の4月16日である:
JulianEasterSunday[2017]CalendarConvert[%, "Gregorian"]西暦1年から2000年までのユリウス暦の復活祭を計算する.そのすべてがユリウス暦の3月22日から4月25日までに納まる:
RandomSample[dates = JulianEasterSunday /@ Range[2000], 4]FindRepeat[Rest /@ dates[[All, 1]]]//Lengthns = Range[0, 8π, π / 6];
repeat = FindRepeat[Cos[ns]]Length[repeat]π / 6FunctionPeriodと比較する:
FunctionPeriod[Cos[n], n]StringRepeat式の生成器を再構築する:
str = StringRepeat["world", 10]FindRepeat[str]特性と関係 (5)
FindRepeatは,繰り返された列の不完全なコピーを検知する:
FindRepeat[{1, 2, 3, 1, 2, 3, 1, 2}]FindRepeat[list,1]は,より短い繰返しが見付からない場合には,list を返す:
FindRepeat[{1, 2, 1, 2, 1, 2}, 1]FindRepeat[{a, b, c, d, e, f}, 1]FindRepeatは,繰り返されブロックがどれも発現回数についての条件を満足しない場合には,空リストを返す:
FindRepeat[{1, 2, 1, 2, 1, 2}, 4]FindRepeat[{a, b, c, d, e, f}, 4]デフォルトで,FindRepeatの第2引数は,第1引数の配列深度によって与えられる1の長さのリストである:
expr = {{1, 2, 3, 4}, {a, b, c, d}, {1, 2, 3, 4}, {a, b, c, d}};repeat = FindRepeat[expr]repeat === FindRepeat[expr, Table[1, ArrayDepth[expr]]]FindRepeatは,式の繰り返された部分を求める:
FindRepeat[{1, 2, 1, 2, 1, 2}, 2]FindTransientRepeatを使うと一時的部分の存在を許すことができる:
FindTransientRepeat[{a, b, 1, 2, 1, 2, 1, 2}, 2]式に一時的部分がない場合は,FindRepeat[expr,n]はLast[FindTransientRepeat[expr,n]]と等しい:
expr = "abcabcabc"rep = FindRepeat[expr, 2]trep = FindTransientRepeat[expr, 2]rep === Last[trep]関連するガイド
-
▪
- データの変換と平滑化 ▪
- 整数列 ▪
- 再帰関数と総和関数 ▪
- 離散データと整数データ
テキスト
Wolfram Research (2017), FindRepeat, Wolfram言語関数, https://reference.wolfram.com/language/ref/FindRepeat.html.
CMS
Wolfram Language. 2017. "FindRepeat." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/FindRepeat.html.
APA
Wolfram Language. (2017). FindRepeat. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/FindRepeat.html
BibTeX
@misc{reference.wolfram_2026_findrepeat, author="Wolfram Research", title="{FindRepeat}", year="2017", howpublished="\url{https://reference.wolfram.com/language/ref/FindRepeat.html}", note=[Accessed: 08-October-2026]}
BibLaTeX
@online{reference.wolfram_2026_findrepeat, organization={Wolfram Research}, title={FindRepeat}, year={2017}, url={https://reference.wolfram.com/language/ref/FindRepeat.html}, note=[Accessed: 08-October-2026]}