Rの整数の最下位セットビットを見つけるための最速/最も効率的な方法は何ですか?

ヴィクトル

Python 3で整数に設定された最下位ビットの位置を返す最速の方法は何ですか?に似た質問があります。2進数で最初のセットビットを見つけること、および位置が設定されている最下位ビットのR.で整数の最下位セットビットの位置を見つけるために、R. Iの必要性のためにより提案された解決策シュペッツレは以下のとおりであります:

unlist(lapply(x, function(z) min(which(as.integer(intToBits(z)) == 1))-1))

それを行うためのより効率的な方法はありますか?

ekstroem

あなたが長いベクトルを持っていて、C ++に行きたいなら、次のコードがあなたを助けるかもしれません(と一緒にRcppそしてffsから関数strings.h):

#include <Rcpp.h>
#include <strings.h>
using namespace Rcpp;

// [[Rcpp::export]]
Rcpp::IntegerVector lsb(const IntegerVector x)
{
  IntegerVector res(x.size());
  std::transform(x.begin(), x.end(), res.begin(), ffs);
  return(res-1);  # To start from 0
}

上記のコードをファイルとして保存し、たとえばlsb.cppパッケージsourceCpp("lsb.cpp")からを使用してコンパイルしRcppます。

わずかに高速です-少なくともオーバーヘッドが無視できるようになる長い入力ベクトルの場合

> x <- floor(runif(10000,1,2^31))
> microbenchmark::microbenchmark(f(x), g(x), lsb(x))
Unit: microseconds
   expr       min         lq        mean    median         uq       max neval
   f(x)   121.771   129.6360   168.91273   133.241   151.0110  1294.667   100
   g(x) 36165.757 40508.1740 50371.45183 42608.686 60460.5270 94664.255   100
 lsb(x)    25.767    26.8015    34.58856    33.035    35.2385   156.852   100

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

javascriptで数値の最下位ビットの位置を取得する最も効率的な方法は何ですか?

式の最大の線形独立サブセットを見つけるための最も効率的な方法は何ですか

セット内の要素を見つけるための最も効率的な方法

すべてのビットを最下位ビットから最上位の最後の1ビット値まで反転させる最も効率的な方法は何ですか?

ビットセットから最下位桁を抽出するための賢明な方法はありますか?

Rのdata.tableでグループごとに行インデックスを見つけるための最も効率的な方法は何ですか?

Javaで左/右端の未設定ビットのインデックスを見つける最も効率的な方法は何ですか?

Pythonで大規模なデータセットを集約するための最速で最も効率的な方法

線に最も近い点のセットから点を見つけるための最速のアルゴリズムは何ですか?

参照(より大きな)データセットに最も近いデータセットを見つけるための効率的なプログラミング方法は何ですか?

XamarinFormsでcsvを検索するための最速かつ最も効率的な方法は何ですか?

時系列:サブセットのコードを書くための最も効率的な方法は何ですか?

javascriptを使用してリスト内のオブジェクトの最初の出現インデックスを見つけるための最も速く/最も効率的な方法は何ですか?

Python:次のデータフレームをマトリックスに解凍するための最も効率的/最速の方法は何ですか?

2つのセットを比較する最も効率的な方法は何ですか?

最上位のセットビットより下のすべてのビットをゼロにする最も効率的な方法は何ですか?

特定の場所でインデックスを見つけるための最も簡単で計算効率の高い方法は何ですか?

「biginteger」クラスの効率的な最下位セットビット

エッジeが与えられた場合、eを含むパスのセットを見つけるためのPythonでの最速の方法は何ですか?

2つのJavaオブジェクトのDeepEqualをチェックするための最速かつ効率的な方法は何ですか?

IPがどのサブネットに属しているかを見つける最も効率的な方法は何ですか

Pythonで2つの数値が異なる最下位ビットの位置を見つけるにはどうすればよいですか?

番号のリストから最大数を取得するための最速かつ最も効率的な方法

2つの符号なし16ビット数の違いを見つけるための最良の方法は何ですか?

Pythonで2つの数値(16ビット)をビットごとに比較する最も効率的な方法は何ですか?

Java-Array []から要素のセットを削除する最も効率的な方法は何ですか

一致する値を見つけるために2つの配列間で反復する最も効率的な方法は何ですか?

オブジェクトの値をフラット化するための最良/最も効率的な方法は何ですか?

2つの整数範囲のオーバーラップをテストする最も効率的な方法は何ですか?

TOP 一覧

  1. 1

    グラフからテーブルに条件付き書式を適用するにはどうすればよいですか?

  2. 2

    ソートされた検索、ターゲット値未満の数をカウント

  3. 3

    Unity:未知のスクリプトをGameObject(カスタムエディター)に動的にアタッチする方法

  4. 4

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  5. 5

    Ansibleで複数行のシェルスクリプトを実行する方法

  6. 6

    Reactでclsxを使用する方法

  7. 7

    tkinterウィンドウを閉じてもPythonプログラムが終了しない

  8. 8

    Windows 10 Pro 1709を1803、1809、または1903に更新しますか?

  9. 9

    Pythonを使用して同じ列の同じ値の間の時差を取得する方法

  10. 10

    PowerShellの分割ファイルへのヘッダーの追加

  11. 11

    Chromeウェブアプリのウェブビューの高さの問題

  12. 12

    BLOBストレージからデータを読み取り、Azure関数アプリを使用してデータにアクセスする方法

  13. 13

    Crashlytics:コンパイラー生成とはどういう意味ですか?

  14. 14

    GoDaddyでのCKEditorとKCfinderの画像プレビュー

  15. 15

    Windows 10の起動時間:以前は20秒でしたが、現在は6〜8倍になっています

  16. 16

    MLでのデータ前処理の背後にある直感

  17. 17

    モーダルダイアログを自動的に閉じる-サーバーコードが完了したら、Googleスプレッドシートのダイアログを閉じます

  18. 18

    reCAPTCHA-エラーコード:ユーザーの応答を検証するときの「missing-input-response」、「missing-input-secret」(POSTの詳細がない)

  19. 19

    STSでループプロセス「クラスパス通知の送信」のループを停止する方法

  20. 20

    ファイル内の2つのマーカー間のテキストを、別のファイルのテキストのセクションに置き換えるにはどうすればよいですか?

  21. 21

    ネットワークグラフで、ネットワークコンポーネントにカーソルを合わせたときに、それらを強調表示するにはどうすればよいですか?

ホットタグ

アーカイブ