Προς το περιεχόμενο

Ζητείται προγραμματιστής c#, java ή c/c++


albNik

Προτεινόμενες αναρτήσεις

...για να βρει την τιμή της count στον παρακάτω κώδικα :)

 

>
long count = 0;
int m = 1000;
for(int i1 = 0; i1 < m; i1++)
 for(int i2 = i1; i2 < m; i2++)
   for(int i3 = i2; i3 < m; i3++)
     for(int i4 = i3; i4 < m; i4++)
       for(int i5 = i4; i5 < m; i5++)
         count++;

//count =??????

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ένα πιο εύκολο τώρα, να βρεθεί η sum

 

>
long sum = 0;
long n = 1000000000; //ena disekatomirio
for(long k = 0; k <= n; k++)
    sum += choose(n, k);

sum %= n;
//sum=?????????

       long choose(long n, long k) //n*(n-1)...(n-k+1) / (1*2*...*k)
       {
           long prod = 1;
           for(int i = 0; i < k; i++)
               prod *= n - i;
           for(int i = 2; i <= k; i++)
               prod /= i;
           return prod;
       }

 

 

 

 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Η πλάκα είναι ότι την αρχική ερώτηση είναι ευκολότερο να την απαντήσει κανείς "ανάποδα": σκεπτόμενος τι είναι αυτό το πράγμα που όταν θέλεις να το υπολογίσεις βάζεις nested loops (όταν ξεκινάνε όλοι από το 1 και όταν καθένας ξεκινάει από την τιμή του προηγούμενου).

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Να ρωτησω, αφου τα πιασατε τα μαθηματικα.

πως μεταφραζεται αυτο σε μαθηματικα

 

 

 

float func(float input)

{

return input*0.01f;

}

..

float var = 10.0f;

for(int i = 0; i < 10; i++)

var = func(var);

 

 

 

??

post-216584-0-49613600-1354923396_thumb.jpg

zειμαι σιγουρος οτι αυτο που εχω στην εινωνα ειναι λαθος.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Η αρχική είναι του τύπου πόσες πεντάδες(a,b,c,d,e) υπάρχουν με κριτήριο 0<=α<=b<=c<=d<=e<m

 

Ενώ η δεύτερη (η αναπάντητη :) ) είναι πόσες 0-αδες και 1-αδες και 2-αδες ....και ν-αδες εχουμε από το ν

 

 

Είναι 10 φορές var=func(var)= var/100/100.../100

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

@παπί

 

Το διδαχτήκαμε στην β' λυκείου.

ν-οστός όρος γεωμετρικής προόδου με λόγο λ=0.01.

 

αν = α1 λν-1 , ν=1,2,..

 

Αυτό που έγραψες όντως είναι λάθος.

Για το άθροισμα υπάρχει κλειστός τύπος, εξίσου απλός...

 

-

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Μαλιστα αρα αν βαλω στην func return input + input*0.01f;

θα ειναι

 

 

αν=α1+(α1λ)ν-1

 

 

Και αν θελω πχ να γινει 30 φορες; βαζω ενα κομμα και μετα v=30;

Α και κατι διαφορετικο αυτο εδω f(x) = x2, πως θα πω οτι θελω να γινει σε συγκεκριμενο διαστημα; πχ θελω τα ψ για χ [55,76]

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δεν έχω βιβλίο μπροστά μου και δεν μπορώ να απαντήσω με απόλυτη σιγουριά για τους τύπους.

 

Όπως το θέτεις, δεν είναι απόλυτα σαφές τι θέλεις.

Οι ακολουθίες που δυο διαδοχικοί όροι τους συνδέονται με σχέση της μορφής αν+1 = αν λ λέγονται γεωμετρικές πρόοδοι.

Γνωρίζοντας τον πρώτο όρο, ο ν-οστός όρος βρισκεται άμεσα με την σχέση αν = α1 λν-1

Το άθροισμα των ν πρώτων όρων μιας τέτοιας προόδου (δηλ. γεωμετρικής) βρίσκεται άμεσα ως sum = α1 ( λν-1)/(λ-1) .

Αν είναι |λ|<1 και αθροίζεις άπειρους όρους, το άθροισμα δίνεται από την σχέση sum = α1 /(1-λ) .

 

Θυμάμαι ότι υπάρχουν άλλες δυο περιπτώσεις :

η αριθμητική πρόοδος και η αρμονική πρόοδος με επίσης απλές σχέσεις για τους διαδοχικούς όρους και το άθροισμα.

Σε γενικότερες περιπτώσεις (π.χ. όρισμα πραγματικό αντί φυσικό, ήτοι x αντί ν), μιλάμε γενικά για σειρές.

Το άθροισμα σειρών είναι γενικά δύσκολο να βρεθεί σε κλειστή μορφή (αν μπορεί βέβαια) ενώ ο ν-οστός όρος ως

συνάρτηση του πρώτου, απαιτεί την λύση εξισώσεων διαφορών. Σε τέτοιες περιπτώσεις, προγραμματιστικά το

κάνεις με βρόγχο και ξεμπερδεύεις.

 

Αν o γενικός όρος είναι αν = ν2, το άθροισμα ν τέτοιων όρων είναι sum = v(v+1)(2v+1)/6 .

 

Αυτά τα έχουμε κάνει στο λύκειο, πέρασαν χρόνια αλλά τα θυμάμαι ακόμα....

 

-

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Να ρωτησω, αφου τα πιασατε τα μαθηματικα.

πως μεταφραζεται αυτο σε μαθηματικα

 

>
float func(float input)
{
return input*0.01f;
}
..
float var = 10.0f;
for(int i = 0; i < 10; i++)
var = func(var);

 

Μαλιστα αρα αν βαλω στην func return input + input*0.01f;

 

η πρώτη function δεν έχει καμιά διαφορά με τη δεύτερη

για να μη μπερδέυεσαι γράφεται input*(1+0.01f)

 

άρα ο τύπος είναι f(n) = x*(1+0.01f)n

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

To 10 διαιρείται με 4 αριθμούς (1 2 5 10)

Με πόσους διαιρείται το 30, 3000, 400000, 1000000

Ποιος είναι ο μικρότερος που διαιρείται με 15, 30, 35, 50, 100 αριθμούς?

 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...