問題タブ [random]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
27 に答える
281019 参照

c# - ランダムパスワードの生成

当サイトのユーザーがパスワードを紛失して[パスワードの紛失]ページに移動した場合、新しい一時パスワードをユーザーに提供する必要があります。これがどれほどランダムであるかは本当に気にしません。または、「必要な」強力なパスワードルールがすべて一致する場合は、後で変更できるパスワードを与えるだけです。

アプリケーションは、C#で記述されたWebアプリケーションです。だから私は意地悪で、Guidの一部を使用する簡単なルートを選ぶことを考えていました。すなわち

提案?考え?

0 投票する
11 に答える
14119 参照

math - ランダム性をテストする方法 (適切なケース - シャッフル)

まず、この質問はこの質問から切り取られています。この部分は、長い質問のサブ部分よりも大きいと思うので、そうしました。気分を害する場合は、ご容赦ください。

ランダム性を生成するアルゴリズムがあるとします。では、どのようにテストしますか?または、より直接的に言えば、カードのデッキをシャッフルするアルゴリズムがあると仮定すると、それが完全にランダムなアルゴリズムであることをどのようにテストしますか?

問題にいくつかの理論を追加するには - カードのデッキは 52 でシャッフルできます! (52階乗) さまざまな方法。カードのデッキを取り、手でシャッフルし、すべてのカードの順番を書き留めます。あなたがまさにそのシャッフルを得る確率はどれくらいですか? 答え: 1 / 52!.

シャッフルした後、順番に各スートの A、K、Q、J ... が出る確率は? 答え 1 / 52!

したがって、一度シャッフルして結果を見るだけでは、シャッフル アルゴリズムのランダム性に関する情報はまったく得られません。2回で情報が増え、3回でさらに…

シャッフル アルゴリズムのランダム性をどのようにブラック ボックス テストしますか?

0 投票する
2 に答える
2427 参照

visual-studio - デバッグ中の算術アンダーフローまたはオーバーフロー例外

これは奇妙な行動の日です。

Delphi 2007で作成されたWin32プロジェクトがあります。これは、.NETランタイムをホストし、移行期間の一部として.NETを呼び出して新しいフォームを表示します。

最近、コードのランダムな場所とポイントで例外が発生し始めました。算術オーバーフローまたはアンダーフローです。

これらのいずれかのスタックトレースは次のようになります。

Visual Studioソリューションでは、最も優れたクラスライブラリの1つ(つまり、可能なすべての参照をプルする)が、Delphiプロジェクトの出力を対象とした特定のデバッグプログラムを設定しました。これにより、プログラムの大部分がDelphiで記述されている場合でも、VisualStudioから.NETコードをデバッグできます。

この問題は、exeファイルを直接(エクスプローラー、ショートカット、またはVisual Studio内で)実行した場合ではなく、デバッガーから実行した場合にのみ発生しCtrlます。F5

明らかに、マシンにはスパイウェアはありません(これが示唆するように)。

他に確認できることはありますか?


編集: .NETデバッガーがこのSNaNフラグを有効にしているように見えますが、Delphiデバッガーは有効にしていません。これについてはさらに調査する必要がありますが、今のところは@LorenzoBoccacciaの回答を受け入れます。

どうやら解決した

さて、ようやくこの問題を解決したようです。テスターに​​とっても、デバッガーを接続しなくても問題が発生し始めたため、問題の優先順位を上げる必要がありました。

最後に、問題が発生したマシンに共通する問題が1つ見つかりました。それは、2006年にラップトップのプロビジョニングに使用されたシステムイメージの古いドライバーを備えたNVIDIA QuadroNVS110Mを搭載したDellLattitudeD620ラップトップです。

ディスプレイドライバを更新するために再起動したときにURLを失いましたが、Webで1つの投稿を見つけました。これは、主にマシンが画面上で何かを実行しているときに.NETサービスがクラッシュしたためです。彼の問題を再現する1つの方法は、C:\へのコマンドプロンプトを開き、を実行してDIR /S大量の画面更新を強制することでした。これにより、クラッシュがトリガーされます。

彼もNVIDIAビデオカードを持っていました。

私のマシンの問題は、プログラムの2〜4回の起動ごとに発生しましたが、ビデオドライバーを更新した後、問題なく123回の起動に成功しました。(ところで、私はそのようなことのためにAutoHotKeyをお勧めすることができます)。

つまり、古い/バギーなNVIDIAドライバーである犯人を見つけたようです。

この質問を更新して、将来誰かが時間を節約できるようにしました。

失礼しますが、隅で泣きます。

ジンクスド!

私はそれをジンクスしたに違いない。ビデオドライバを更新した後、同僚のラップトップが失敗するのと同じくらい早く、上記の更新を投稿しました。

それでも、私はそれが私たちのアプリケーションの外の問題であると確信しているので、どの特定のものを更新するかを理解することは残っています。


さらなる更新:わかりました。私のマシンは明らかに修正されましたが、同僚のマシンでは修正されていません。これまでのところ、BIOS、チップセットドライバーを更新しており、現在、XP用のSP3が導入されています。

バーンインテストは今夜行われ、起動中、または初めてWinForms .NETコードが実行されたときに問題が発生したため、アプリは一晩起動したままになります。このアプリは主にDelphiWin32アプリですが、.NETランタイムをホストしており、問題は.NETコードに関連しているようです。.NETランタイムを「起動」すると、問題が発生する可能性があります。または、Win32から最初の.NETウィンドウを起動すると、問題も発生する可能性があります。


統計的に、私は今このコードをリリースする準備ができています。一晩中、アプリケーションはエラーなしで3051回起動されましたが、ビデオドライバーを更新する前は、2〜4回ごとにクラッシュしました。

Prodded and found(!/?)

このバグ修正の試練は、医者に行くような気がします。そこで、次の会話が続きます。

私はアプリケーションを突っ込んで突っ込みましたが、ついにこの問題を引き起こす何かを見つけたと思います。

このアプリでは、Delphi 2007 Win32アプリケーションからの.NETランタイムをホストし、グルーコードには次の行があります(現在)。

真ん中の2つの定数は元々0でした。つまり、デフォルトを選択します。この変更は数か月前に導入されたものであり、この後、問題は徐々に私たちに忍び寄ってきました。この変更は、パフォーマンスプロファイリングを実行するためにANTSプロファイラーがWin32アプリケーションとホストされた.NETランタイムをロードするように促すために導入され、当時導入した変更によって機能しました。さらに、算術オーバーフロー/アンダーフローの問題は徐々に悪化しているので、変更後しばらくの間問題が発生しなかったので、私たちが行った変更のいずれにも起因していなかったに違いありません。

また、(元々)デバッガーを実行しているときにのみ問題が発生したため、VisualStudioやDelphiに問題があると考えました。

とにかく、統計的には、JavaScriptによってトリガーされた1つの画面上のブラウザーが上下に繰り返しスクロールすることで(明らかにバグをトリガーするために必要)、呼び出しで0を使用してアプリケーションを726回正常に起動できました。 、および2つの定数を使用して17回のうち5回クラッシュします。

そして、そもそも誰がその変更を行ったのかについては触れないようにしましょう。犯人は匿名のままにされたいと確信しています...

0 投票する
11 に答える
45223 参照

c# - ランダム加重選択

Broker を表す以下のクラスを検討してください。

重みを考慮して、配列からブローカーをランダムに選択したいと思います。

以下のコードについてどう思いますか?

私はあまり自信がありません。これを実行すると、ブローカー A は常にブローカー D よりも多くのヒットを取得し、重みも同じです。

より正確なアルゴリズムはありますか?

ありがとう!

0 投票する
5 に答える
9148 参照

sql-server - T-SQL でのランダム加重選択

すべての候補行に適用された重みに基づいて、T-SQL でテーブル行をランダムに選択するにはどうすればよいですか?

たとえば、表に 50、25、および 25 で重み付けされた一連の行があり (合計すると 100 になりますが、100 になる必要はありません)、それらの 1 つをランダムに選択して、それぞれに等しい統計的結果を得たいとします。重さ。

0 投票する
10 に答える
41129 参照

python - SQLAlchemy を使用してランダムな行を取得する

SQLAlchemy を使用してテーブルから 1 つまたは複数のランダムな行を選択するにはどうすればよいですか?

0 投票する
7 に答える
8485 参照

php - shuffle() 関数を使用せずに PHP で配列の順序をランダム化する最良の方法は何ですか?

就職面接でこんな質問をされました。インタビュアーと私はどちらが正解か意見が分かれました。誰かがこれに関するデータを持っているかどうか疑問に思っています。

更新: shuffle() の使用は固く禁じられていることを言及する必要がありました...申し訳ありません。

0 投票する
5 に答える
4555 参照

java - Java コードと同等の vb コード

このJavaコードが正確に何をするのか誰か教えてもらえますか?


このコードを VB で再作成できるように、段階的な説明が役に立ちます。ありがとう

0 投票する
11 に答える
1606 参照

unit-testing - ランダムな動作を持つ可能性のあるメソッドの単体テスト

今日の午後、このような状況に出くわしたので、皆さんは何をしているのか聞いてみようと思いました.

ユーザーのパスワードをリセットするためのランダム化されたパスワード ジェネレーターがあり、その問題を修正しながら、ルーチンを (ゆっくりと成長している) テスト ハーネスに移動することにしました。

生成されたパスワードが設定したルールに準拠していることをテストしたいのですが、もちろん、関数の結果はランダム化されます (または、疑似ランダム化されます)。

単体テストでは何をしますか?たくさんのパスワードを生成し、それらがすべてパスすることを確認して、それで十分だと考えますか?

0 投票する
50 に答える
471345 参照

ruby - Ruby でランダムな文字列を生成する方法

現在、「A」..「Z」の 8 文字の疑似ランダム大文字文字列を生成しています。

しかし、きれいに見えません。また、単一のステートメントではないため、引数として渡すこともできません。大文字と小文字が混在する文字列 "a" .. "z" と "A" .. "Z" を取得するには、次のように変更しました。

でもゴミみたい。

誰かがより良い方法を持っていますか?