追加: Python の基本 + モンテカルロ アルゴリズム (ソース コード付き) を使用して、順列と組み合わせに関する質問を共有します。

追加: Python の基本 + モンテカルロ アルゴリズム (ソース コード付き) を使用して、順列と組み合わせに関する質問を共有します。

[[433811]]

みなさんこんにちは。私は Python の専門家です。

驚きましたか?先週、この記事を公開しました:Python の基礎 + モンテカルロ アルゴリズム (ソース コード付き) を使用して順列と組み合わせを実装する問題を共有する、そして今日は追加の章と呼ばれる別の問題があります!実際、今日は [🌑(これは月の裏側です)] の解決策を皆さんと共有したいと思います。これは素晴らしいです!

前の

数日前、Caigeコミュニケーショングループで、[Rick Xiang]というファンがPythonコミュニケーショングループでの順列と組み合わせについて質問しました。一見とても簡単に思えますが、実際にはかなり難しいです。

タイトルは次のとおりです: リストには重複する値のない 15 個のランダムな数字があります。リストからランダムに 5 つの数字を選択し、a と a+1 のすべての可能な組み合わせを見つけます。 a は 15 個の数字のうちのいずれかになります。

アイデアと解決策については、この記事では、Pythonの基本+モンテカルロアルゴリズム(ソースコード付き)を使用して順列と組み合わせを実装する問題を共有し、【張先生】と【ちょっと面白い】のアイデアと解決策を提供します。合計5つのコードがあり、誰でも学ぶのに十分です。興味のある友人は、すぐに学んでください。実用的な情報が満載です。

2. 新しいコード

先週の金曜日、私は Python の基礎 + モンテカルロ アルゴリズム (ソース コード付き) を使用して順列と組み合わせを実装する問題を共有するこのオリジナル記事を公開しました。幸いなことに、下の図に示すように、個人的に実践して建設的な解決策を提供してくれたファンがいます。

より誰にとっても分かりやすいと思われる【🌑(これが月の裏側です)】の擬似コードを載せておきます。

  1. # -*- コーディング: utf-8 -*-
  2. # モジュール性
  3. ランダムにインポート
  4. numpyをnpとしてインポートする
  5. インポート時間 
  6.  
  7.  
  8. # 15個のランダムな値を取り出す
  9. get_random15() を定義します:
  10. random_array = [np.array(random.sample(range(2000), 15))範囲(100000)内のi場合]
  11. random5 = {get_random5(random15)、 random15が random_array内にある場合}
  12. [i for i in random5 if i]を返す
  13.  
  14.  
  15. # 15個のランダムな値を走査し、隣接する2つのランダムな数値を取り、判定後に条件を満たす値を返します
  16. get_random5(random_15)を定義します。
  17. random_5 = set (random_15[random.sample(range(15), 5)]) # np.arrayのインデックスが選択値を置き換えます
  18. #要素に特定の要素が含まれているかどうかを判断するには、 setプロパティを使用します。
  19. random_5_resp = { len(random_5.intersection({num, num + 1})) == 2 の場合はTrue 、それ以外の場合は 間違い  num in random_5}の場合
  20. Trueの場合はtuple(random_5)を返す  random_5_respの場合、それ以外は()
  21.  
  22.  
  23. __name__ == '__main__'の場合:
  24. start_time =時間.時間()
  25. 最終結果 = get_random15()
  26. print( "質問の要件を満たすリストの合計は %d です" % len(final_result))
  27. print( "それらは: %s" % final_result)
  28. end_time =時間.時間()
  29. 使用時間 = 終了時間 - 開始時間
  30. 印刷()
  31. print( "このプログラムに使用された時間: {}" .format( time .strftime( '%H(時間):%M(分):%S(秒)' , time .gmtime(used_time))))

このコードは本当によく書かれています。Python の基礎知識がない人にとっては、理解するのは少し難しいでしょう。私も最初に読んだときは、理解するのが少し難しいと感じました。理解するには、何度か読む必要があります。

このコードはテスト済みで、効果的です。前のコードは約 12 秒かかりましたが、このコードは 1.5 秒しかかかりません。

彼はここで3つの最適化を行いました。1つ目は、15個の数字からランダムに5つの値を選択するのに長い時間がかかったことです。ここでは、numpy.arrayの特性を利用してコードを最適化しています。科学計算では、多くのループ文を節約でき、Pythonのリストよりもコードが簡単に使用できます。Pythonのリストは直接操作できませんが、Numpy配列は直接操作できます。2つ目は、以前の重複排除機能を削除することです。ここでもsetを使用して最適化しているため、この部分で時間が節約されています。3つ目は、セットの交差演算を使用することです。これにより、以前のif判断に比べて時間が節約されます。

こう考えるとため息が出ます、「人生は短い、私は Python を使う」!

結論

私は上級の Python ユーザーです。順列と組み合わせに関するファンの質問に基づいて、この記事では、基本的にファンの要件を満たす、Python の基本 + モンテカルロ アルゴリズムを使用したソリューションを提供します。

しかし、この解決策は現時点では最善ですが、常に最善であるとは限りません。

<<:  アルゴリズムベースの不動産投機は3月に20億ドル以上の損失を出した!不動産大手の破綻:AIは全く制御できない

>>:  機械学習による分類とその応用を理解するための図

ブログ    
ブログ    
ブログ    

推薦する

AIと5Gを組み合わせてIoTの収益を最大化する方法

[[402984]]研究によると、人工知能と 5G テクノロジーを組み合わせることで、通信会社は I...

...

AIビッグモデルオープンソースヒーロー!ザッカーバーグ氏はLLaMAリークについて議会から質問を受けた。「慣れている」

ザッカーバーグ氏は最近また大きなトラブルに巻き込まれた。リチャード・ブルーメンソール議員(プライバシ...

機械学習に効果的なデータを取得する方法 小さなデータを扱うための 7 つのヒント (一読の価値あり)

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

ついに誰かが5G+AIをわかりやすく説明してくれた

[[378431]] 01 5Gのコンセプト5Gの正式名称は第5世代移動通信技術です。これは最新世代...

AI人材の競争は軍拡競争となっている。AIの創造性競争に賭けるAI大手の中で、勝利のポイントを獲得するのはどれだろうか?

世界中の人工知能の人材が徐々に量産モードに入りつつあります。今年6月、百度と浙江大学は、潜在的な人工...

世界初!人間の脳のようなスーパーコンピュータ「シェナン」がまもなく発売され、ムーアの法則を破り、エネルギー消費を数桁削減する

人間の脳は地球上で最も効率的な計算装置です。わずか 20W の電力と 1.3kg の質量で、1 秒間...

人工知能はモノのインターネットにおける次のブレークスルーとなるでしょうか?

AIoT は、モノのインターネットとそれに接続されたデバイスのネットワークをクラウドから解放し、イ...

DAMOアカデミーが大規模モデルテストベンチマークを発表: GPT-4はかろうじて合格、他のモデルはすべて不合格

ビッグモデルの発展、特に最近のさまざまなオープンソースのビッグモデルのリリースにより、さまざまなモデ...

無人スーパー、無人運転、無人宅配が実現すれば、職を失いそうな一般人はどうするのだろうか。

人工知能などの技術の発展により、無人技術がますます多く登場しています。 2030 年までに、8 億人...

sklearn 機械学習の使い方を 5 分で解説します (パート 1)

[[205998]]皆さんのお役に立てれば幸いですので、この投稿を書くのは大変でした。機械学習とデ...

重複ページの検索エンジンアルゴリズム分析

検索エンジンは一般的に、各 Web ページに対して一連の情報フィンガープリントが計算されるという考え...

C# はデジタル変換のための中国語アルゴリズムを記述します

C# はデジタル変換のための中国語アルゴリズムを記述します最近、プロジェクト上の理由により、C# で...

15年以内に恐竜を繁殖させる、マスクは恐竜を​​月に送りたいのか?

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

行列乗算の3Dインサイト: これがAIの思考法

行列乗算の実行プロセスを 3D で表示できれば、行列乗算を学ぶのはそれほど難しくないでしょう。今日で...