C# でのジョセフ リング アルゴリズムの簡単な分析

C# でのジョセフ リング アルゴリズムの簡単な分析

C# アルゴリズムを勉強しているときに、C# ジョセフ リング アルゴリズムに出会いました。ジョセフ リング アルゴリズムとは何でしょうか?まず、ジョセフ環問題の説明を見てみましょう。

n 人が輪になって座っているとします。今、誰かが数を数え始めます。m まで数えた人が列から離れます。次に列を離れた人が再び数を数え始めます。m まで数えた人が再び列から離れ、全員が列から離れるまでこれを繰り返します。列を離れた順に出力します。

以下は、C# アルゴリズムの Joseph リング アルゴリズムの実装プログラムです。

  1. 公共 ジョセファスクラス
  2.    
  3.   //開始人からカウントを開始し、alterを単位としてループで人数をカウントし、合計人数はtotalになります 
  4.    公共  int [ ] Jose( int合計、 int変更、 int開始)
  5. {
  6.         整数i,j,k = 0;
  7.  
  8.          //カウント配列はデキュー順にデータを格納するので、結果を返すことができます 
  9.          int [] count =新規  int [ 合計+1];
  10.  
  11.          //s 配列は初期データを格納する 
  12.          int [] s =新しい  int [ 合計+1];
  13.  
  14.          // 配列に初期値を割り当てます。最初の人物には 0 という番号が付けられ、2 番目の人物には 1 というように番号が付けられます。  
  15.          (i = 0; i < 合計; i++)の場合
  16. {
  17. s[i] = i;
  18. }
  19.  
  20.          //デキュー順に配列countに格納する 
  21.          (i = 合計; i >= 2; i--)の場合
  22. {
  23. 開始 = (開始 + 変更 - 1) % i;
  24.              (開始 == 0)の場合
  25. 開始 = i;
  26. count[k] = s[開始];
  27. 関数
  28.              (j = 開始 + 1; j <= i; j++)の場合
  29. s[j - 1] = s[j];
  30. }
  31. カウント[k]=s[1];
  32.  
  33.          //返された結果 
  34.         カウントを返します
  35. }
  36. }

上記のプログラムは、Microsoft Visual Studio .NET 2003 および Visual C# 2005 Express Edition Beta1 で正常にデバッグされています。

これで、C# ジョセフ リング アルゴリズムの基礎の紹介は終わりです。C# ジョセフ リング アルゴリズムを紹介することで、C# アルゴリズムについてある程度理解していただければ幸いです。

<<:  C# データ構造とアルゴリズムにおける線形テーブルの簡単な分析

>>:  C# バイナリ ツリー トラバーサル アルゴリズムの実装の簡単な分析

推薦する

テスラが自社開発したスーパーコンピューター「Dojo」は今月発表されるのか? UCLA教授がツイートで事前に情報を漏らす

[[415656]]謎のツイートにより、テスラが再び人気急上昇中だ。昨日、@Dennis Hong ...

...

欧州のAI規制案は世界的な影響を及ぼす可能性がある

メディアの報道によると、欧州連合は最近、米国や中国のテクノロジー大手を含む組織を対象に、域内での人工...

人工知能と仮想現実のつながり

バーチャルリアリティ(VR)は、新しい実用的な技術です。バーチャルリアリティ技術は、コンピュータ、電...

...

快手ドラゴンフライ戦略エンジンの設計と応用

1. 問題と課題1. 問題の背景2018年以来、Kuaishouの事業全体は急速に発展しており、チー...

感情コンピューティングは人間とコンピュータの相互作用の中核となるのでしょうか?感情分析におけるディープラーニングの応用について

人間とコンピュータの相互作用における感情コンピューティングの役割感情コンピューティングについて話す前...

...

AIOps が IT 管理を変革する方法

世界がコロナウイルス危機の影響に取り組む中、業界団体は競合するネットワーク リソース、高まるユーザー...

30 行の JavaScript コードで、わずか数分でニューラル ネットワークを作成する方法を学びます。

[[203712]]ニューラルネットワークを自分で構築するのは複雑すぎますか? [[203713]...

大規模機械学習システムでは無料のランチはない

[[205684]] Tu Weiwei 氏は、Fourth Paradigm Prophet プラ...

人工知能を導入できるいくつかのアプリケーション

人工知能は長年にわたって世界を支配しており、さまざまな分野における主要な問題が AI を使用して解決...

企業が生産性向上のためにAIを活用しようとする中、最高AI責任者の必要性が高まっている。

Foundry の 2023 年 AI 優先事項調査では、組織内で AI および AIGC テクノ...

1 つの記事で理解する: 「コンピューター ビジョン」とは一体何でしょうか?

[[183558]]誰かがあなたにボールを投げてきたら、どうしますか? もちろん、すぐにキャッチす...

...