Hogy kell ezt a feladatot megoldani? Többi lent
Létezik Afrikában egy nagyon speciális méhfaj. Ennek a fajnak a nőstényei évente egy hím méhnek adnak életet, a hímek pedig egy hím és egy nőstény méhnek, majd elpusztulnak!
A tudósok most véletlenül rábukkantak egy „mágikus nőstény méhre”, amelyik halhatatlan, de szintén képes életet adni évente egy méhnek, akárcsak a többi nőstény. A tudósok tudni szeretnék, hogy hány méh lesz N év után. A feladatod, hogy írj egy programot, amely segít nekik meghatározni a hím méhek és az összes méh számát N év után.
1. év 1 hím 1 nőstény (belevéve a halhatatlant is)
3. év: 4 hím 3 nőstény (belevéve a halhatatlant is)
Én a Fibonacci számsorozatra gondoltam.
Nőstény:
1. év: 1
2. év: 2
3. év: 3
4. év: 5
5. év: 8
Hím:
1. év: 1
2. év: 2
3. év: 2+1+1=4
4. év: 4+2+1=7
5. év: 7+4+1=12
Szupernőstény: Generál 1 hímet körönként, és túlél.
Hím: megújítja önmagát (mondhatnánk úgy is, hogy minden hím kvázi-örökéletű) és generál egy sima nőstényt.
Sima nőstény: generál egy hímet és elpusztul.
Minden körben annyi nőstény van, ahány hím volt az előző körben +1 (a szuper).
Minden körben annyi hím van, ahány hím volt az előző körben, plusz ahány nőstény (sima+szuper) volt az előző körben.
Ezt kell egy kiindulási értékkel megadni és egy for loop segítségével iterálni N-ig.
Nekem ezt adja:
Formátum:
Szupernőstény + Hím + Nőstény (szummaméh = szummahím + szummanőstény)
1. év SzN + H (2 = 1+1)
2. év SzN + 2H + N (4 = 2+2)
3. év SzN + 6H + 2N (9 = 6+3)
4. év SzN + 9H + 6N (16 = 9+7)
5. év SzN + 16H + 9N (26 = 16+10)
De egyébként akármit is ad, nem jó kézzel kimatekolni. Mi van, ha N=100 évre kérdeznek rá? Nem tudom, te papíron matekoltad-e ki vagy írtál rá progit, de ha a progi a feladat akkor nem elég N=5-ig kézzel iterálgatni.Írj egy kódot, tök egyszerű.
A konkrét számokban neked van igazad. Itt egy JavaScript kód:
var n=prompt("Hány évig számoljunk?")-1;
var szn = 1;
var n_prev = 0;
var h_prev = 1;
var n_next;
var h_next;
var szaporulat = function()
{
h_next = n_prev+h_prev+szn;
n_next = h_prev;
};
console.log ("Év "+ 1 + " hím = " + h_prev + " nőstény = " + szn);
for (i=1; i<=n; i++)
{
szaporulat();
h_prev = h_next;
n_prev = n_next;
console.log("Év "+ (i+1)+ " hím = " + h_next + " nőstény = " + (n_next+szn));
}
n= 5 esetén az eredmények:
Év 1 hím = 1 nőstény = 1
Év 2 hím = 2 nőstény = 2
Év 3 hím = 4 nőstény = 3
Év 4 hím = 7 nőstény = 5
Év 5 hím = 12 nőstény = 8
De lefuttattam száz évre is... 10^21 nagyságrenű méhünk lesz.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!