Permütasyon oyunu redux


20

Bu, daha önceki bir sorunun yeniden ifadesidir .

İki oyuncu, Alice ve Bob arasında aşağıdaki tarafsız mükemmel bilgi oyununu düşünün . Oyunculara 1 ile n arasında bir tamsayı verilir. Her turda, mevcut permütasyon artarsa, mevcut oyuncu kaybeder ve diğer oyuncu kazanır; aksi takdirde, geçerli oyuncu numaralardan birini kaldırır ve oyun diğer oyuncuya geçer. Alice önce oynar. Örneğin:

  • (1,2,3,4) - Bob tanım olarak derhal kazanır.

  • (4,3,2,1) - Alice, nasıl oynarsa oynasın üç tur sonra kazanır.

  • (2,4,1,3) - Bob, Alice nasıl oynarsa oynasın ilk turunda kazanabilir.

  • (1,3,2,4) - Alice, 2 veya 3'ü kaldırarak hemen kazanır; aksi takdirde, Bob 2 veya 3'ü kaldırarak ilk turunda kazanabilir.

  • (1,4,3,2) - Alice sonunda o ilk dönüşte 1 alırsa kazanır; Aksi Bob tarafından ilk turda kazanabileceği değil 1 çıkarmadan.

Hangi oyuncunun bu oyunu belirli bir başlangıç ​​permütasyonundan kazandığını belirlemek için mükemmel bir oyun varsayımıyla bir polinom zaman algoritması var mı ? Daha genel olarak, bu standart bir tarafsız oyun olduğu için, her permütasyonun Sprague-Grundy değeri vardır ; örneğin, (1,2,4,3) değeri * 1 ve (1,3,2) değeri * 2'dir. Bu değeri hesaplamak ne kadar zor?

Açık geri izleme algoritması O (n!) Zamanında çalışır, ancak bu dinamik programlama yoluyla süresine düşürülebilir .O(2npoly(n))


4
Bana öyle geliyor ki saf algoritma O (2 ^ n⋅poly (n)) zamanında çalışıyor.
Tsuyoshi Ito

Örneklerinizden, dizinin aşağı inmesi durumunda Alice'in her zaman, dizinin yükselmesi durumunda Bob'un daima kazanacağı açıktır. Bu sorun bana kapsamlı bir şekilde incelenmiş ve geniş bir araç cephanesi kullanmanıza izin veren sıralama algoritmalarını analiz etmeyi hatırlatıyor.
chazisop

1
@chazisop: “Dizi her zaman aşağı iniyorsa Alice kazanır”: Bu sadece ve eğer n eşitse kazanır.
Tsuyoshi Ito

@ Jɛ ff E, 3. durumda, Bob ilk turunda nasıl kazanır?
Suresh Venkat

2
@Suresh: (2,4,1,3) durumunda, grafik gösterimi 4 köşede (2-1-4-3) doğrusal grafiktir. Alice bir uç düğümü kaldırırsa, bu doğrusal grafiği 3 köşede bırakır; Bob, merkez tepe noktasını kaldırarak kazanır (böylece 3, 1 ve 2, 4 ile cevaplanır). Alice bir iç düğümü kaldırırsa, bu iki bağlı köşe ve izole bir düğüm bırakır; Bob iki bağlı köşeden birini kaldırarak kazanır (böylece 1, 3 veya 4 ile ve 4, 1 veya 2 ile cevaplanır).
mjqxxxx

Yanıtlar:


7

"Permütasyon oyunu" şu oyun için izomorfiktir:

Bağlantıyı kes. Oyuncular dönüşümlü olarak grafiğindeki köşeleri kaldırır . Tamamen bağlantısı kesilmiş bir grafik (yani kenarları olmayan bir grafik) üreten oyuncu kazanır.G

Grafik , belirli bir başlangıç permütasyon tekabül π S N içeren sadece bu kenarların ( I , j ) olan I - j ve π ( i ) - π ( j ) ters işaretlere sahip olduğu. Yani, her sayı çifti yanlışGππSn(i,j)ijπ(i)π(j)permütasyondaki düzen bir kenarla ilişkilidir. İzin verilen hareketler, permütasyon oyunundaki izomorfiktir (bir sayıyı kaldır = bir düğümü kaldır) ve kazanan koşullar da izomorfiktir (azalan sırada çift yok = kenar kalmadı).

Tamamlayıcı bir görünüşüdür grafik tamamlayıcı bir "çift" oyun oynamak dikkate alınarak elde edilen bu kenarlar içerir, ( i , j ) için de i ve j olan doğru permütasyon sırasına. Bağlantıyı Kesmek için çift oyun:Gπc=GR(π)(i,j)ij

Yeniden bağlayın. Oyuncular dönüşümlü olarak grafiğindeki köşeleri kaldırır . Tam bir grafik üreten oyuncu kazanır.G

Belirli permütasyona bağlı olarak, bu oyunlardan biri analiz etmek için diğerinden daha basit görünebilir. Grafik gösteriminin avantajı, grafiğin bağlantısız bileşenlerinin ayrı oyunlar olduğu açıktır ve bu nedenle karmaşıklıkta bir miktar azalma umulur. Ayrıca pozisyonun simetrilerini daha belirgin hale getirir. Ne yazık ki, kazanan koşulları standart dışı vardır ... tüm hamle kullanıldıktan önce permütasyon oyun her zaman bir şey vererek sona erecek misère'den karakteri. Özellikle, nim-değeri, bağlantısı kesilen bileşenlerin nim-değerlerinin nim-toplamı (ikili XOR) olarak hesaplanamaz.


Kes için, herhangi bir grafik için görmek zor değildir ve herhangi bir hatta , n , oyun G ˉ K , n eşdeğerdir G (burada ˉ K , n ile kenarsız grafiktir n köşe). Bunu kanıtlamak için, G + G ˉ K n'nin kesintili toplamının ikinci oyuncu kazancı olduğunu göstermemiz gerekir. Kanıt indüksiyon ile | G | + n . Eğer GGnG,K¯nG,K¯nnG,+G,K¯n|G,|+nG,kenarsızsa, ilk oyuncu hemen kaybeder (her iki oyun da biter). Aksi takdirde, ilk oyuncu hareket edebilir ve ikinci oyuncu hamlesini diğerine kopyalayabilir ( | G | = | G | - 1 ile G + G ¯ K n'ye indirir ); veya n 2 ise, ilk oyuncu bağlantısı kesilen parçada hareket edebilir ve ikinci oyuncu da aynısını yapabilir ( G + G ˉ K n - 2'ye indirerek ).G,G,'+G,'Kn¯|G,'|=|G,|-1n2G,+G,K¯n-2

Herhangi bir grafiktir, bu göstermektedir eşdeğerdir H K p , H parçasıdır G hiçbir bağlantısı kesilmiş köşeler ile, ve p = 0 ya da 1 olduğu parite kesildiğinde nokta sayısı ve G . Bir denklik sınıfı tüm oyun aynı niml-değerine sahip ve ayrıca, denklik ilişkisi saygı birlik işlem: eğer G ~ H K p ve G ' ~ * H 'K s ' o GG,'HKp'HG,p=01G,G,~'HKpG,'~'H'Kp' . Ayrıca, bir oyunlar görebilirsiniz [ H K 0 ] ve [ H K 1 ] sürece farklı niml-değerleri H oynarken: boş grafiktir H + H K 1 , ilk oyuncu izole sunar tepe noktası, H + H bırakarakve daha sonra ikinci oyuncunun hareketlerini kopyalayın.G,G,'~('H'H')Kpp'['HK0]['HK1]'H'H+'HK1'H+'H

Reconnect ile ilgili ayrıştırma sonuçları bilmiyorum.


İki özel permütasyon türü, özellikle basit yığın oyunlarına karşılık gelir.

  1. Birincisi , inişler , örneğin . Ne zaman π bu halini alır, grafik G π ayrık kliğin bir birleşmedir ve Disconnect oyun yığınları üzerinde bir oyuna azaltır: oyuncular dönüşümlü bir yığın tek bir fasulye kaldırmak bütün yığınları boyuta sahip olana kadar 1 .32165487πG,π1
  2. İkincisi, aşağı inen çıkışlar , örneğin . Ne zaman π bu formu, grafik alır G c π ayrık cliques bir birleşmedir ve Yeniden Bağlanma oyun yığınları üzerinde bir oyuna azaltır: oyuncular dönüşümlü bir yığın tek bir fasulye kaldırmak geriye tek bir yığın kalmayıncaya kadar .78456123πG,πc

Küçük bir düşünce, yığınlardaki bu iki farklı oyunun ( bazı karışıklık riski olan 1-Yığınlar ve Tek-Yığın diyebiliriz ) aslında kendilerinin izomorfik olduğunu göstermektedir. Her ikisi de, genç bir diyagramdaki bir oyunla temsil edilebilir (başlangıçta @domotorp tarafından önerildiği gibi), oyuncuların sadece tek bir satır kalana kadar sağ alt köşeyi kaldırarak dönüşümlü olarak gösterdikleri. Bu, sütunlar yığınlara karşılık geldiğinde 1-Yığınlarla aynı oyun ve satırlar yığınlara karşılık geldiğinde One-Heap ile aynı oyun.

Bağlantıyı Kes ve Yeniden Bağlan'a uzanan bu oyunun önemli bir unsuru, sürenin son oyun durumu ile basit bir şekilde ilişkilendirilmesidir. Sıra size geldiğinde, oyunda yapmak üzere olduğunuz tek dahil olmak üzere tek sayıda hamle varsa kazanırsınız. Her hamlede tek bir kare kaldırıldığından, oyunun sonunda kalan karelerin sayısının şimdi sahip olduğu karşı pariteye sahip olmasını istediğiniz anlamına gelir. Dahası, karelerin sayısı tüm dönüşlerinizde aynı pariteye sahip olacaktır; böylece en baştan hangi sayımın olmasını istediğinizi biliyorsunuz. Nihai sayının kazanmaları için çift veya tek olması gerekip gerekmediğine göre iki oyuncu Eve ve Otto diyebiliriz. Havva her zaman garip pariteye sahip eyaletlerde hareket eder ve eşit pariteye sahip devletler üretir ve Otto bunun tam tersidir.

Cevabında @PeterShor One-Heap'ın tam bir analizini veriyor. Kanıtı tekrar etmeden, sonuç şu şekildedir:

  • Otto, -ve 2- halkaları sever ve daha büyük bir yığını tolere edebilir. En azından Havva'ya formun hemen galibiyetini vermeden bir 2 hariç tüm yığın büyüklüklerini kazanıp kazanamayacağını kazanır ( 1 , n ) . Otto için optimal strateji her zaman halidir dışında ikinci büyük yığınından almaktır ( 1 , 1 , n > 1 ) o dan almalı zaman, n . Otto, büyük yığınlarda başlamak için çok fazla fasulye varsa kaybedecektir.122(1,n)(1,1,n>1)n
  • Havva şerbetlerden hoşlanmaz . Tüm yığın boyutlarını yapabilirse kazanır 2 . Eve için en uygun strateji , eğer varsa, daima 1- yığıntan almak ve asla 2- yığından almaktır. Eve başlamak için çok fazla 1- şeridi varsa kaybeder .12121

Belirtildiği gibi, bu ifade 1-Yığınlar için de en uygun stratejileri sağlar, ancak ifade için biraz daha gariptirler (ve birincil-ikili "çeviride" bir hata yapıyor olabilirim). 1-Yığınlar oyununda:

  • Otto bir veya iki büyük yığını sever ve herhangi bir sayıda tolere tolere edebilir . O bütün yapabilir ancak iki büyük yığınlar halinde o kazanır 1 -heaps Havva formun hemen kazan vermeden en azından ( 1 , 1 , ... , 1 , 2 ) . Otto için en uygun strateji her zaman üçüncü büyük yığından veya sadece iki yığın olduğunda daha küçük yığıntan almaktır.11(1,1,,1,2)
  • Havva, en büyük ve ikinci en büyük yığınlar arasındaki bir boşluğu sevmez. En büyük iki yığını aynı büyüklükte yapabilirse kazanır. Havva için en uygun strateji, eğer eşsizse, her zaman en büyük yığından almaktır ve asla en büyük boyuttan tam olarak ikisi yoksa.

@PeterShor'un belirttiği gibi, bu analizlerin daha genel Disconnect ve Reconnect oyunlarına nasıl (veya eğer) genişletilebileceği açık değildir.


2
Bu tür oyunlara topluca “köşe silme oyunları” olarak atıfta bulunulduğunu düşünüyorum. Ancak, kazanma koşulunun, derecesi gibi yerel özelliklerin yerine grafiğin küresel özelliğine atıfta bulunmasının oldukça standart dışı olduğunu kabul ediyorum. bir tepe noktası.
Tsuyoshi Ito

4
Oluşturulan grafiğe literatürde permütasyon grafiği ( en.wikipedia.org/wiki/Permutation_graph ) denir . Bazı yapısal özellikler yardımcı olabilir.
Yoshio Okamoto

1
@Yoshio: Bu iyi bir nokta. Permütasyon oyunu grafik oyunu için izomorfiktir, ancak başlangıç ​​grafikleri keyfi değildir. Dolayısıyla, genel grafik oyununu analiz etmek zor olsa bile, grafiklerin bu alt sınıfıyla kısıtlandığında daha basit hale gelebilir.
mjqxxxx

2
Öte yandan, daha genel formülasyonun zor kanıtlanması daha kolay olabilir. Köşe
Jeffε

2
Bu tür bir oyun hakkında özellikle math.SE'de ( math.stackexchange.com/questions/95895/… ) bir soru ekledim . Bu arada, permütasyon grafikleri daire grafikleri olduğundan, alternatif bir formülasyon aşağıdaki gibidir: Oyuncular sırayla akorları ilk setten çıkarır; kesişmeyen bir dizi akor bırakan oyuncu kazanır.
mjqxxxx

7

Cevabında domotorp, oyunun özel bir vakasını analiz etmeyi önerir. Bu özel durum, permütasyon, her biri aşağıdakinden daha büyük olan bir dizi artan sekans olduğunda ortaya çıkar, örneğin (8,9,5,6,7,4,1,2,3). Bu oyunda, bir yığın taş koleksiyonu ile başlarsınız ve oyuncular sırayla bir taşı bir yığından çıkarırlar. Tek bir yığın bırakan oyuncu kazanır. yığınının içinde h i taşları olduğunu söyleyeceğiz ve h i'nin azalan sırada verildiğini varsayacağız . Örneğin, yukarıdaki permütasyon için, h ibenhbenhbenhben3,3,2,1'dir. Bu oyunun analizini domotorp'un cevabına yorumlarda vermeye çalıştım, ama (a) yanlış anladım ve (b) gerçek bir kanıt vermek için yorumlarda yer yok.

Bu oyunu analiz etmek için iki miktarı karşılaştırmamız gerekiyor: , tek taş içeren yığın sayısı ve t = i 2 , h i > 2s ; toplamdaki en büyük yığını yok saydığımızı unutmayın. Bu, biri hariç tüm yığınların ikiden fazla taş içermediğinden emin olmak için çıkarmanız gereken taş sayısıdır. Kaybetme pozisyonlarının aşağıdaki gibi olduğunu iddia ediyoruz:t=Σben2,hben>2hben-2

  1. nin tek sayıda taş içerdiği pozisyonlar .ts-2

  2. Pozisyonlar taşlar eşit sayıda ihtiva etmektedir.ts

Kaybedilen bir pozisyondan kazanan bir pozisyona gitmeniz gerektiğini göstermek kolaydır, çünkü her turda en fazla 1 değişebilir ve taş sayısı her harekette 1 azalır.t-s

Bunun doğru olduğunu göstermeyi bitirmek için, birinci oyuncunun (1) veya (2) kategorisinde olmayan herhangi bir pozisyondan, ilk oyuncunun bir hamlede (1) veya (2) kategorisindeki bir pozisyona ulaşabileceğini, veya doğrudan kazanın.

İki durum söz konusudur:

  1. tek sayıda taş içerdiği pozisyonlar . Burada, eğer s > 0 ise , bir taştan tek bir taşla bir taşı çıkarın. Sadece bir yığın kaldı, biz kazandık. Aksi takdirde, şimdi var t s . Tek bir taşla yığın yoksa, bir taştan en az üç taşlı bir taşı çıkarın. (Tek sayıda taş olduğu için bu mümkündür). Yana s = 0 , elimizdeki t s .ts-1s>0tss=0ts

  2. çift ​​sayıda taş içerdiği pozisyonlar . Burada, en büyük yığın dışında en az iki taşı olan yığınlar varsa, bunlardan bir taşı çıkarın. Bu yığının içinde üç veya daha fazla taş varsa, t bir azalır. İçinde tam olarak iki taş varsa, s bir tane artar. Şimdi t s - 2 var . Son durum, biri hariç tüm yığınların tek taştan oluşmasıdır; bu durumda, eşit sayıda taş olup olmadığını ilk oyuncunun kazanıp kazanmadığını kontrol etmek kolaydır.ts-1tsts-2

Bu stratejiyi orijinal oyuna genelleştirmeyi denedim ve nasıl yapılacağını anlayamadım.


1
Cevabımda, bu özel duruma bir çözüm bulmanın, özel diyagramı, Young diyagramını aktararak elde edilen "ikili" pozisyonda oynayarak artan bir dizi azalan çalışma ile çözdüğünü de belirttim. Özellikle, Havva'nın optimal stratejisi "tam olarak bu boyutta tam iki tane olmadıkça en büyük öbekten al" olur ve Otto'nun optimal stratejisi "en küçük öbekten al" olur.
mjqxxxx

Bu yaklaşımın mükemmel bir çözüme yol açacağından eminim, ancak şu anda hala küçük bir hata var, örneğin (3,1) kaybetmiyor ve (3,1,1). Sorun şu ki, 2. tanımın bu durumu dışlaması gerekir, çünkü bir adımda tek bir yığın konumuna ulaşabiliriz. Ama bence bu 2 ile ilgili tek sorun. Umarım bunu düzeltmek zor değildir.
Ocak'ta domotorp

1
@domotorp: (3,1) için, t = 0 ve s = 1, bu yüzden t s ve kriter (2), kaybedilen bir pozisyon olmadığını söylüyor. (3,1,1) için, t = 0 ve s = 2, bu nedenle t s - 2 ve kriter (1), kaybedilen bir pozisyon olduğunu söylüyor. Bence t'nin tanımında en büyük yığını görmezden geldiğinizi kaçırdınız .
Peter Shor

Tabii ki, sonunda o kısmı unuttum ... O zaman bu oyun çözüldü!
Ocak'ta domotorp

1
Tam bir cevap değil, ama yine de lütufa değer.
Jeffε

3

Hızlı hipotez kontrolü için bir çözümü uyguladım . Onunla oynamaktan çekinmeyin . Yerel olarak C ++ derleyiciniz yoksa, "yeni girişle yükle" bağlantısını kullanarak uzaktan farklı girişlerde çalıştırabilirsiniz.O(2nn)

@ Jɛ ff E (1,4,3,2) 'nin önerdiğiniz gibi * 2 değil, * 1 değeri oldu.


Hata! Benim hatam. Soru düzeltildi: g (1,3,2) = mex {g (1,3), g (1,2), g (3,2)} = mex {0, 0, * 1} = * 2.
Jeffε

Söz konusu @ Jɛ ff E It ilginç her pozisyonda SG-değeri 2'den büyük değil ben keyfi üzere hemen kanıtlamaya çalışıyorum n ı nasıl olacak bu yardım Bilmiyorum rağmen. n10n
Dmytro Korduban

@maldini: Oyunun izlenebilir olmasını sağlayacak bazı güzel özelliklere sahip olması umudunu veriyor. Grafikler için genelleştirilmiş oyuna veya mükemmel grafikler için genelleştirilmiş oyuna ne olduğunu merak ediyorum.
Peter Shor

3

5 Ocak'ı düzenleyin: Aslında aşağıda açıklanan One Heap Game, sorunun özel bir örneğidir, yani sayılar, belirli bir şekilde birbirini izlediğinde, birinci grup, üçüncü gruptan daha büyük ikinci gruptan daha büyük olacak şekilde Her gruptaki sayılar artıyor. Örneğin 8, 9, 4, 5, 6, 7, 2, 3, 1 böyle bir permütasyon. Bu yüzden önce bu özel durumu çözmeyi öneriyorum.

Feragatname: Artık aşağıdaki ispatın doğru olduğunu iddia etmiyorum, örneğin, Tsuyoshi'nin bir permütasyondan bir sayının silinmesinin, permütasyon diyagramından bir kare silinerek elde edilemeyen bir diyagram vereceğini gösteren yorumu inceleyin. Cevabı burada, bu yaklaşımın işe yaramadığını, ayrıca başka bir basit oyun içerdiğini göstermek için bıraktım.

Genç Tableaux sayesinde oyun çok basit bir formülasyona sahip. Oradan diğer oyunlar gibi analiz edilebileceğinden ve doğrusal bir zaman algoritması üreteceğinden eminim.

Önce Genç Diyagramlarda şu oyunu tanımlayın: Her turda, mevcut diyagram yataysa (bir satırdaki tüm kareler), mevcut oyuncu kaybeder ve diğer oyuncu kazanır; aksi takdirde, geçerli oyuncu sağ alt karelerden birini kaldırır ve oyun diğer oyuncuya geçer.

Şimdi sayı dizisini bir Genç Tableaux'ya sipariş edin. Ana iddia, orijinal oyunun galibinin, bu şekil ile başlayan şema oyunu ile kazananla aynı olmasıdır. Bunu görmek için, oyuncular bir sayıyı sildiklerinde, yeni dizinin şemasının, şemanın sağ alt karesi silinerek elde edilebileceğini unutmayın. Ayrıca, bu tür herhangi bir diyagram, ilgili alt-sağ kareden sayı silinerek elde edilebilir. Bu ifadeler standart Young Tableaux teorisinden alınmıştır.

Bu diyagram oyunu yeterince basit olmasına rağmen, önemsiz bir şekilde daha standart gibi görünen aşağıdaki oyuna eşdeğerdir:

Bir Yığın Oyunu: Oyunculara her birinde bazı çakıl taşları olan bazı yığınlar verilir. Her turda, eğer sadece bir yığın kaldıysa, mevcut oyuncu kaybeder ve diğer oyuncu kazanır; aksi takdirde, mevcut oyuncu bir çakıl taşını bir yığından kaldırır ve oyun diğer oyuncuya geçer.

Öbek oyununa basit bir çözüm varsa (ve kesinlikle bir tane olduğuna inanıyorum) da orijinal oyuna bir çözüm elde ederiz: Sıralamayı bir Genç Tableaux'ya koyun ve diyagramını yığınlara dönüştürün.

Ne yazık ki hangi yığın pozisyonlarının kazandığını / Sprague-Grundy değerlerini nasıl belirleyeceğimi görmüyorum. Birkaç vakayı elle kontrol ettim ve aşağıdakiler en fazla 6 çakılla kaybetme pozisyonlarıdır:

bir yığın; (1,1,1); (2,2); (3,1,1); (2,1,1,1); (1,1,1,1,1); (4,2); (3,3); (2,2,2).

Herkes bu oyunu çözebilir?

Düzenleme: Peter Shor, cevabını görebilir!


1
Belirli bir permütasyonun Genç Tableau'ya nasıl dönüştürüldüğünü ve aynı oyunun (artan bir diziye ulaşılıncaya kadar sayı kaldırma) nasıl Tableau'da oynandığını gösteren en az bir örnek verebilir misiniz? Özellikle "sağ alt köşelerden birini" kaldırmanın ne demek olduğunu anlamıyorum.
mjqxxxx

5
Burada, bir sayının bir permütasyondan çıkarılmasının, sağ alttaki hücrelerden birinin karşılık gelen Young diyagramından (Young tableau yerine ) çıkarılmasına karşılık geldiği daha zayıf bir iddianın bir örneği . N = 5 olsun ve permütasyon [4,1,3,5,2] (yani σ (1) = 4, σ (2) = 1, vb.) Tarafından belirtilen bir konumu düşünün ve 3'ü kaldırın ondan. Hareketten önceki karşılık gelen Young diyagramı 5 = 3 + 1 + 1'dir, ancak hareketten sonraki karşılık gelen Young diyagramı 4 = 2 + 2'dir; bu, bir hücrenin 3 + 1 + 1'den çıkarılmasından elde edilmez.
Tsuyoshi Ito

5
Ve permütasyon [5,4,1,2,3], [4,1,3,5,2] ile aynı Genç diyagramına sahiptir, ancak Genç diyagramına 4 = 2 + 2'den erişemezsiniz. Bu yüzden oyun, Genç tableau şeklinden daha fazlasına bağlıdır.
Peter Shor

2
Yapıcı yanlış anlama için Yaşasın!
Jeffε

3
@ Jɛ ff E: Evet, bu sadece yanlış anlaşılmanın varlığının bir kanıtı olmaktan çok daha yararlı.
Tsuyoshi Ito
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.