Ilginc bir matematik sorusu yardim lutfen !!!

Kodla Büyü

mav96

Site Gezgini
Mesajlar
93
Numaraları 1 den 10.000 e kadar10.000 asker var.1 tanede kılıç. Kılıç 1.askerin elinde ve 2.yi vuruyor ve 3.ye kılıcı veriyor 3.asker de 4. Askeri vuruyo 5.askere veriyor yani sirayla bi sonrakini vuruyolar bu donguye göre en sona kalan asker kac numarali asker olur.
 
Ben 3617. asker hayatta kalıyor diye buldum ama diğer arkadaşlarında fikirlerini bekliyoruz.
 

Ekli dosyalar

  • 3617.JPG
    3617.JPG
    13.7 KB · Görüntüleme: 547
mav96' Alıntı:
Numaraları 1 den 10.000 e kadar10.000 asker var.1 tanede kılıç. Kılıç 1.askerin elinde ve 2.yi vuruyor ve 3.ye kılıcı veriyor 3.asker de 4. Askeri vuruyo 5.askere veriyor yani sirayla bi sonrakini vuruyolar bu donguye göre en sona kalan asker kac numarali asker olur.
.
soruda EKSİKLİK var.
9999. asker 10000 i askeri vurduktan sonra ne oluyor.
bu mantıkla 10.000 - 5000 - 2500 - 1250 - 675 şeklinde sayı azalacak.
673 - 674 ü vuracak ve 675. asker kimi vuracak ????
 
BaRBaRYaN' Alıntı:
mav96' Alıntı:
Numaraları 1 den 10.000 e kadar10.000 asker var.1 tanede kılıç. Kılıç 1.askerin elinde ve 2.yi vuruyor ve 3.ye kılıcı veriyor 3.asker de 4. Askeri vuruyo 5.askere veriyor yani sirayla bi sonrakini vuruyolar bu donguye göre en sona kalan asker kac numarali asker olur.
.
soruda EKSİKLİK var.
9999. asker 10000 i askeri vurduktan sonra ne oluyor.
bu mantıkla 10.000 - 5000 - 2500 - 1250 - 675 şeklinde sayı azalacak.
673 - 674 ü vuracak ve 675. asker kimi vuracak ????

BaRBaRYaN hocam söylediğiniz eksiklik soruda mevcut haklısınız. Benim sorudan anladığım 10.000 asker dairesel şekilde sıralanmış. Yani 9999. asker 10.000. askeri vurduktan sonra kılıcı sıradaki yani 1. askere veriyor ve bu döngü devam ediyor. Soru o kadar basit bir soru değil. Sorunun çözümünü devam ettirdiğinizde göreceksiniz ki kılıç her zaman 1. askere gelmiyor hatta 1. asker arada bir yerde ölüp gidiyor.
Yukarıda bazı arkadaşlar tekler kalır demişler zaten orası ilk tur için kolaylıkla ve açıkça görülüyor. Önemli olan diğer turlar ve sonuca ulaşmak. Çok doğaldır ki turlar devam ettikçe tekler veya çiftler diye bir durum söz konusu olmayacaktır.
 
hemenyardim' Alıntı:
BaRBaRYaN' Alıntı:
mav96' Alıntı:
Numaraları 1 den 10.000 e kadar10.000 asker var.1 tanede kılıç. Kılıç 1.askerin elinde ve 2.yi vuruyor ve 3.ye kılıcı veriyor 3.asker de 4. Askeri vuruyo 5.askere veriyor yani sirayla bi sonrakini vuruyolar bu donguye göre en sona kalan asker kac numarali asker olur.
.
soruda EKSİKLİK var.
9999. asker 10000 i askeri vurduktan sonra ne oluyor.
bu mantıkla 10.000 - 5000 - 2500 - 1250 - 675 şeklinde sayı azalacak.
673 - 674 ü vuracak ve 675. asker kimi vuracak ????

BaRBaRYaN hocam söylediğiniz eksiklik soruda mevcut haklısınız. Benim sorudan anladığım 10.000 asker dairesel şekilde sıralanmış. Yani 9999. asker 10.000. askeri vurduktan sonra kılıcı sıradaki yani 1. askere veriyor ve bu döngü devam ediyor. Soru o kadar basit bir soru değil. Sorunun çözümünü devam ettirdiğinizde göreceksiniz ki kılıç her zaman 1. askere gelmiyor hatta 1. asker arada bir yerde ölüp gidiyor.
Yukarıda bazı arkadaşlar tekler kalır demişler zaten orası ilk tur için kolaylıkla ve açıkça görülüyor. Önemli olan diğer turlar ve sonuca ulaşmak. Çok doğaldır ki turlar devam ettikçe tekler veya çiftler diye bir durum söz konusu olmayacaktır.
Haklısınız dairesel dizilme varsa tek çift fark etmez. Sonunda 1 asker kalır ama kaçıncı asker.
 
En sona 9999. asker kalır. 10000.askeri vurur o kalır. 1-3-5-7....9999. askerler kalır hayatta...
 
a-anil06' Alıntı:
En sona 9999. asker kalır. 10000.askeri vurur o kalır. 1-3-5-7....9999. askerler kalır hayatta...
Hocam olayı devam ettir. 9999. Asker 10000. Askeri öldürdükten sonra kılıcı tekrar 1. Askere verecek. Bu durum en sonunda 1 asker kalana kadar devam edecek. En sona kalacak asker hangisi? O bulunacak.
 
3617. asker hayatta!

Php kodu aşağıdadır, yalnız 25 dk bekledim sonuç için.
Kod:
<?php
		
		set_time_limit(0); 
		$askerler=array();
		for($i=1;$i<=10000;$i++){
			$askerler[$i]="kılıç";
		}
		
		$durum=true;
		do{
			for($i=1;$i<=count($askerler)-1;$i++){			
				if($askerler[$i]=="kılıç"){
					$buldun_mu=true;
					for($k=$i+1;$k<=count($askerler);$k++){
						if($askerler[$k]=="kılıç"){
							$buldun_mu=false;
							$askerler[$k]="ölü";						
							break;
						}
					}
					if($buldun_mu){
						for($k=1;$k<=$i-1;$k++){
							if($askerler[$k]=="kılıç"){
								$askerler[$k]="ölü";						
								break;
							}
						}
					}
				}
				
				$sayac=0;
				for($m=1;$m<=count($askerler);$m++){
					if($askerler[$m]=="kılıç"){
						$sayac+=1;
						$sonuc=$m;
					}
				}
				
				if($sayac==1) $durum=false;
			}
		}while($durum);
		
		echo "$sonuc. asker hayatta!";
	?>
 
Geri
Üst