Kartları takas için mümkün olan tüm yollar bulma

0 Cevap php

Ben kartları takas için mümkün olan tüm yollar bulur bir PHP uygulama üzerinde çalışıyorum. Her kullanıcının en az bir kart var. Bir kullanıcı bir kart talep ettiğinizde, uygulama ona talep ettiği kart için Para Birim onun kartını takas için mümkün olan tüm yolları gösterir.

Diyelim ki:

user 1 has card type A
user 2 has card type B 
user 3 has card type C 

Ve ettiğini varsayalım:

user 1 wants card type C
user 2 wants card type A
user 3 wants card type B

Kullanıcı 1 kişi, kart C ise, tek çözüm olduğunu:

user 1 gives user 2 his card
user 2 gives user 3 his card
user 3 gives user 1 his card

Ancak iki diğer kullanıcıların ne olsaydı:

user 4 has card type B & wants card type A
user 5 has card type C & wants card type B

Kullanıcı 1 kişi, kart C varsa Şimdi, yukarıda bir yanında bir başka çözüm var o olduğunu:

user 1 gives user 4 his card
user 4 gives user 5 his card
user 5 gives user 1 his card

Bir kullanıcı ya da isteği olabilir kaç kart açısından hiçbir sınırı yoktur olacaktır. Şimdiye kadar, ben iki SQL tabloları oluşturulur. Tablo "kartları" her kullanıcı kimliği ve cardID izler. Tablo "istekleri" Her kullanıcı kimliği izlemek ve istenen cardID tutar.

0 Cevap