日付であるシードに基づいてコレクション(1〜10)から3のセットをランダムに選択します。私は毎日3つの新しいアイテムを選びたいと思っています。 アイテムを選ぶことは問題ではありませんが、どのアイテムが昨日選んだのかを知るには、日付を知るだけで再構築できますか?すでに選択されているセットを除外して、シードされたランダムに基づいてコレクションからサブセットを選択
答えて
はい、できます。クラスRandom
は、疑似ランダムシーケンスを提供します。同じseedの値で開始するとき、シーケンスは常に同じです(Random(int seed)のコンストラクタをチェックしてください)。だから、
私は昨日選ばれていたものを知っていますか、私は日付のみを知っていること 再構築することができますか?
昨日選択した番号を取得するには、昨日と同じシードを使用する必要があります。例えば。指定した日付のの値をDateTime
オブジェクトから使用できます。
var today = DateTime.Today();
var random = new Random(today.Ticks);
var todayItems = items.OrderBy(x => random.Next()).Take(3).ToList();
var yesterday = today.AddDays(-1);
random = new Random(yesterday.Tikcs);
var yesterdayItems = items.OrderBy(x => random.Next()).Take(3).ToList();
ここから今日と昨日のアイテムを比較します。
こんにちは、お返事ありがとうございます。これは今私がやっていることです。しかし、私が求めていたのは、2日間連続して同じアイテムを避けるこの中間的なステップです。意味私は1日に1,2,3を得る場合、私は1,2,3が2日目に選ばれないように除外したい。私はちょうど1日のピックをどこかに保存することでそれを避けることができました。しかし、私はそれを行う方法がないと仮定しましょう、これを行うことはまだ可能でしょうか? –
コレクションに10個のアイテムがある場合は、3個のアイテムのサブセットを3個のビットを設定して2進数で表すことができます。 3つの選択肢に対応するビットを設定するだけです。コレクション内の項目0、5、7を選択する場合は、ビット0,5,7を10ビット数に設定します。その番号を保管し、それを使用して、同じ3つのセットを次の日に再び選択しないようにします。昨日の数字と今日の数字を比較するだけです。 10ビットの数値はC#の整数に簡単に収まります。
ありがとう、これは実際に私の元の質問だった、それは3つの項目のどこに翌日にそれらを比較するために選ばれた情報を格納せずに行うことが可能ですか? –
何らかの形で情報を保存する必要があります。そうしないと、同じ選択を繰り返しているかどうかはわかりません。 – rossum
ありがとう、それは私が探していた答えです! –
- 1. ランクと以前に選択された行に基づいて行を選択してください
- 2. anglejを使用してドロップダウンから選択されたオプションに基づいて適切なチェックボックスを選択
- 3. WPFのアルファベットに基づいてリストされたレコードを選択
- 4. 選択に基づいてランダムにアイコンを設定します
- 5. Django Jquery:選択に基づいて、さらに選択オプションを表示
- 6. nginx:ルートに基づいて選択されたルート
- 7. 第1選択(グーグルシート)に基づいてフィルタリングされたドロップダウン
- 8. ドロップダウンから選択されたオプションに基づいて適切なチェックボックスを選択する
- 9. req.responseTextに基づいてオプションを選択してください
- 10. リストから重複を削除するラムダによって選択されたプロパティに基づいて
- 11. 他のドロップダウン選択に基づいてドロップダウン選択を無効にする - 選択されていても「選択済み」
- 12. ランダムに選択してください
- 13. 同じ選択からの提出された値に基づいてプリペイドを選択
- 14. データベースからの値に基づいて選択ボックスを選択します。
- 15. 年齢に基づいてデータベースから人を選択してください
- 16. ajaxは別の選択に基づいて選択します
- 17. セル内で選択されたチェックボックスに基づいて行にアクセスする
- 18. その値に基づいてクライアントに追加された選択オプションを選択する方法
- 19. フォームオプションボタンに基づいてケースを選択
- 20. テキストパターンに基づいて行を選択
- 21. プログラムによって選択されたテーブルビューセルの選択解除
- 22. ドロップダウンリスト/選択リストで既に選択されている項目を選択してください
- 23. 別のクエリに基づいてランダムなデータベース行を選択
- 24. 選択されている場合はアラートが他の選択肢で既に選択されている
- 25. 選択された列に基づいて簡素化をクエリする
- 26. 結合された選択に基づいてSQLレコードを更新する
- 27. ユーザーの選択に基づいてJSONネストされた配列をフィルタリングする
- 28. 選択されたものに基づいてコンボボックスのオプションを制限する
- 29. ランダムにテキストファイルから10ワードを選択してください
- 30. ios swiftのuitableview multiselctの選択された行数に基づいて選択スタイルを制限する方法
これは無料のコーディングサービスではないため、この質問をトピックとしてクローズすることにしました。 –
このように動作するウェブサイトがたくさんあります。あなたはいくつかの要件を満たしており、誰かがあなたのために(おそらくお金のために)これらの要件を実装しています。しかし、StackOverflowはさまざまな方法で動作します。要件を自分で実装しようとすると、問題(エラーや予期しない結果)がある場合は、問題の説明、現在のコードを渡して、 –
質問を編集しました。私は解を望んでいない、私はこれが与えられた制約で可能であるかどうかを知りたい。 –