Fractional Indexing
GPT-4.icon
「Fractional indexing」とは、データ構造やアルゴリズムにおいて、従来の整数インデックスに代わる概念です。通常、配列やリストの要素にアクセスする際には整数を使ってその位置を指定しますが、fractional indexingでは、分数や小数を使用してより精密な位置指定を行うことができます。
index access
この概念は、特に階層的なデータ構造や動的なデータセットで役立ちます。例えば、ユーザーがリストの中間に新しい要素を挿入したい場合、整数インデックスではその前後の要素のインデックスを変更する必要がありますが、fractional indexingを使用すると、新しい要素に独自の分数インデックスを割り当てることで、既存のインデックスを変更せずに済みます。
この方法は、特にUIデザイン(特にドラッグアンドドロップインターフェース)、データベースの管理、または動的なリストの操作などの分野で有効です。Fractional indexingを利用することで、データの管理がより柔軟になり、複雑な操作が簡単になる可能性があります。
code:ts
type FractionalItem<T> = {
index: number;
value: T;
};
function insertFractional<T>(list: FractionalItem<T>[], value: T, position: number): FractionalItem<T>[] {
const newItem: FractionalItem<T> = {
index: position,
value: value
};
// 新しい要素を挿入
list.push(newItem);
// インデックスでリストをソート
return list.sort((a, b) => a.index - b.index);
}
// 使用例
let myList: FractionalItem<string>[] = [
{ index: 1, value: 'A' },
{ index: 2, value: 'B' },
{ index: 3, value: 'C' }
];
// 'D'を2.5の位置に挿入
myList = insertFractional(myList, 'D', 2.5);
console.log(myList);
小数のindexを作るってことか
ここでみた
共同編集ツールを作る時に採用されるパターン
https://www.figma.com/ja/blog/realtime-editing-of-ordered-sequences/
Figmaのtech blog