質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

1回答

2962閲覧

マッチングアプリのロジックについて

cnct

総合スコア8

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2017/07/07 11:08

###前提・実現したいこと
Ruby(Rails)でyentaの用なマッチングアプリを作成しようと考えています。
具体的な仕様としては、毎朝7:00におすすめのユーザーが10人ランダムで表示されて
表示されたユーザーがお互いに「いいね」をした場合、マッチしメッセージが可能という仕様を
イメージしています。

その際、全体のユーザーDBからランダムに表示される10人はお互いに表示され合わないとマッチにならないかと思いますが、このロジックはどのように実装されているのでしょうか。単純に10人を表示するだけだとお互いにマッチできないのかと思いますので。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kiichi54321

2017/07/07 11:45 編集

サービスデザインのコアになるところだし、頑張って考えるといいのでは?という感想しかない。
guest

回答1

0

Ruby

1# encoding: utf-8 2 3arr = (0..100).to_a 4 5name_list = arr.sample(11).map(&:to_s) 6 7name_list.each_with_index do |name, i| 8 list = [] 9 name_list.each_with_index do |e, n| 10 list << e unless n == i 11 end 12 puts "#{name}さんのリストです。#{list.map { |e| e + 'さん' }.join(', ')}" 13end

Ruby

179さんのリストです。90さん, 92さん, 50さん, 67さん, 22さん, 34さん, 42さん, 52さん, 30さん, 66さん 290さんのリストです。79さん, 92さん, 50さん, 67さん, 22さん, 34さん, 42さん, 52さん, 30さん, 66さん 392さんのリストです。79さん, 90さん, 50さん, 67さん, 22さん, 34さん, 42さん, 52さん, 30さん, 66さん 450さんのリストです。79さん, 90さん, 92さん, 67さん, 22さん, 34さん, 42さん, 52さん, 30さん, 66さん 567さんのリストです。79さん, 90さん, 92さん, 50さん, 22さん, 34さん, 42さん, 52さん, 30さん, 66さん 622さんのリストです。79さん, 90さん, 92さん, 50さん, 67さん, 34さん, 42さん, 52さん, 30さん, 66さん 734さんのリストです。79さん, 90さん, 92さん, 50さん, 67さん, 22さん, 42さん, 52さん, 30さん, 66さん 842さんのリストです。79さん, 90さん, 92さん, 50さん, 67さん, 22さん, 34さん, 52さん, 30さん, 66さん 952さんのリストです。79さん, 90さん, 92さん, 50さん, 67さん, 22さん, 34さん, 42さん, 30さん, 66さん 1030さんのリストです。79さん, 90さん, 92さん, 50さん, 67さん, 22さん, 34さん, 42さん, 52さん, 66さん 1166さんのリストです。79さん, 90さん, 92さん, 50さん, 67さん, 22さん, 34さん, 42さん, 52さん, 30さん

ランダムに10人とって配列を作って、その配列を回しながら各々に
その配列を表示するというのはどうでしょうか。

10人表示するために11人を選択しています。

元の配列を減らしながら表示させるバージョン。

Ruby

1# encoding: utf-8 2 3class Kako 4 def show(arr) 5 while arr.size > 0 6 arr.shuffle! 7 name_list = arr.shift(11) 8 work(name_list) 9 end 10 end 11 12 private 13 14 def work(array) 15 array.each_with_index do |name, i| 16 list = [] 17 array.each_with_index do |a, b| 18 list << a unless b == i 19 end 20 puts "#{name}さんのリストです。#{list.map { |e| e.to_s + 'さん' }.join(', ')}" 21 end 22 end 23end 24 25k = Kako.new 26k.show((0..1234).to_a) 27

投稿2017/07/07 13:40

編集2017/07/07 14:23
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問