Java多次元データから一意のIDへのハッシュマッピングとプレフィックスクエリ
この記事では、Javaでハッシュマップを設計して、一意のIDに多次元データのマッピングを実装する方法について説明し、部分寸法に基づいてプレフィックスクエリをサポートします。たとえば、関数f(a, b, c, ...)
一意のIDを生成する必要があり、 f(a, b) != f(b, a)
。また、 a
で始まるすべてのマッピングのクエリなど、特定の次元が付けられたすべてのマッピング結果をクエリすることができる必要があります。
プラン:
単一のハッシュマップを直接使用してプレフィックスクエリを効率的に実装することは困難です。より効率的な解決策は、トライツリーやカスタムツリー構造などのツリー構造を使用し、キーとしてのディメンション情報と一意のIDを値として使用することです。
実装手順:
- 寸法データ構造:次の次のように、次の次のようにクラスを定義します。
クラス寸法{ 文字列A; 文字列B; 文字列c; // ...その他の寸法 パブリックディメンション(文字列A、文字列B、文字列C){ this.a = a; this.b = b; this.c = c; } //ハッシュマップ比較のためのequals()およびhashcode()メソッド @オーバーライド public boolean equals(オブジェクトobj){ if(this == obj)trueを返します。 if(obj == null || getClass()!= obj.getClass())return false; dimension that =(dimension)obj; return objects.equals(a、that.a)&& objects.equals(b、that.b)&& objects.equals(c、that.c); } @オーバーライド public int hashcode(){ Objects.hash(a、b、c)を返します。 } }
- Trie Tree構造(例): Trie Treeを使用して、寸法情報とIDマッピングを保存します。各ノードはディメンション値を表し、リーフノードは一意のIDを保存します。
クラストリエノード{ 文字列値; 地図<string trienode> 子供たち; 文字列uniqueid; //リーフノードに一意のIDを保存します public trienode(string value){ this.value = value; this.children = new Hashmap (); } } クラスTrie { トリエノードルート; public trie(){ root = new Trienode( ""); } public void insert(dimension dim、string uniqueid){ Trienode node = root; node = insertrecursive(node、dim、uniqueID); } private TriEnode InserTrecursive(TriEnodeノード、ディメンションディム、ストリングユニークID){ if(dim == null){ node.uniqueid = uniqueId; ノードを返す; } if(dim.a!= null){ node.children.computeifabsent(dim.a、k-> new Trienode(k)); node = node.children.get(dim.a); if(dim.b!= null){ node.children.computeifabsent(dim.b、k-> new Trienode(k)); node = node.children.get(dim.b); if(dim.c!= null){ node.children.computeifabsent(dim.c、k-> new Trienode(k)); node = node.children.get(dim.c); } } } node.uniqueid = uniqueId; ノードを返す; } 公開リスト<string> prefixsearch(string prefix){ リスト<string> result = new ArrayList (); Trienode node = root; for(string part:prefix.split( "、")){ if(!node.children.containskey(part)){ 返品結果; //プレフィックスが見つかりません } node = node.children.get(part); } collectids(ノード、結果); 返品結果; } private void collectids(Trienodeノード、リスト<string> 結果) { if(node.uniqueid!= null){ result.add(node.uniqueid); } for(trienode child:node.children.values()){ collectids(子、結果); } } }</string></string></string></string>
- 使用例:
パブリッククラスメイン{ public static void main(string [] args){ trie trie = new Trie(); trie.insert(new Dimension( "a"、 "b"、 "c")、 "u1"); trie.insert(new Dimension( "a"、 "b"、 "d")、 "u2"); trie.insert(new Dimension( "x"、 "y"、 "z")、 "v1"); リスト<string> 結果= trie.prefixsearch( "a、b"); System.out.println(results); //出力:[U1、U2] 結果= trie.prefixsearch( "a"); System.out.println(results); //出力:[U1、U2] 結果= trie.prefixsearch( "x"); System.out.println(results); //出力:[V1] } }</string>
この例は、Trie Treeを使用して、マルチ次元データのマッピングとプレフィックスクエリを一意のIDに実装する方法を示しています。実際のニーズに応じて、Trieツリーの次元データ構造と実装の詳細を調整できます。非常に大きなデータセットについては、より高度なデータ構造とアルゴリズムを使用してパフォーマンスを最適化することを検討してください。たとえば、データベースインデックスを使用してクエリをスピードアップすることを検討してください。
以上がJavaで多次元から一意の値までのハッシュマッピングとプレフィックスクエリ関数を実装する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ai合并图层的快捷键是“Ctrl+Shift+E”,它的作用是把目前所有处在显示状态的图层合并,在隐藏状态的图层则不作变动。也可以选中要合并的图层,在菜单栏中依次点击“窗口”-“路径查找器”,点击“合并”按钮。

ai橡皮擦擦不掉东西是因为AI是矢量图软件,用橡皮擦不能擦位图的,其解决办法就是用蒙板工具以及钢笔勾好路径再建立蒙板即可实现擦掉东西。

虽然谷歌早在2020年,就在自家的数据中心上部署了当时最强的AI芯片——TPU v4。但直到今年的4月4日,谷歌才首次公布了这台AI超算的技术细节。论文地址:https://arxiv.org/abs/2304.01433相比于TPU v3,TPU v4的性能要高出2.1倍,而在整合4096个芯片之后,超算的性能更是提升了10倍。另外,谷歌还声称,自家芯片要比英伟达A100更快、更节能。与A100对打,速度快1.7倍论文中,谷歌表示,对于规模相当的系统,TPU v4可以提供比英伟达A100强1.

ai可以转成psd格式。转换方法:1、打开Adobe Illustrator软件,依次点击顶部菜单栏的“文件”-“打开”,选择所需的ai文件;2、点击右侧功能面板中的“图层”,点击三杠图标,在弹出的选项中选择“释放到图层(顺序)”;3、依次点击顶部菜单栏的“文件”-“导出”-“导出为”;4、在弹出的“导出”对话框中,将“保存类型”设置为“PSD格式”,点击“导出”即可;

Yann LeCun 这个观点的确有些大胆。 「从现在起 5 年内,没有哪个头脑正常的人会使用自回归模型。」最近,图灵奖得主 Yann LeCun 给一场辩论做了个特别的开场。而他口中的自回归,正是当前爆红的 GPT 家族模型所依赖的学习范式。当然,被 Yann LeCun 指出问题的不只是自回归模型。在他看来,当前整个的机器学习领域都面临巨大挑战。这场辩论的主题为「Do large language models need sensory grounding for meaning and u

ai顶部属性栏不见了的解决办法:1、开启Ai新建画布,进入绘图页面;2、在Ai顶部菜单栏中点击“窗口”;3、在系统弹出的窗口菜单页面中点击“控制”,然后开启“控制”窗口即可显示出属性栏。

引入密集强化学习,用 AI 验证 AI。 自动驾驶汽车 (AV) 技术的快速发展,使得我们正处于交通革命的风口浪尖,其规模是自一个世纪前汽车问世以来从未见过的。自动驾驶技术具有显着提高交通安全性、机动性和可持续性的潜力,因此引起了工业界、政府机构、专业组织和学术机构的共同关注。过去 20 年里,自动驾驶汽车的发展取得了长足的进步,尤其是随着深度学习的出现更是如此。到 2015 年,开始有公司宣布他们将在 2020 之前量产 AV。不过到目前为止,并且没有 level 4 级别的 AV 可以在市场

ai移动不了东西的解决办法:1、打开ai软件,打开空白文档;2、选择矩形工具,在文档中绘制矩形;3、点击选择工具,移动文档中的矩形;4、点击图层按钮,弹出图层面板对话框,解锁图层;5、点击选择工具,移动矩形即可。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SublimeText3 中国語版
中国語版、とても使いやすい

ホットトピック









