<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=1769_-_albume</id>
	<title>1769 - albume - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=1769_-_albume"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1769_-_albume&amp;action=history"/>
	<updated>2026-05-01T09:56:35Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1769_-_albume&amp;diff=9805&amp;oldid=prev</id>
		<title>Oros Ioana Diana at 14:40, 18 May 2024</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1769_-_albume&amp;diff=9805&amp;oldid=prev"/>
		<updated>2024-05-18T14:40:03Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;//wiki.universitas.ro/index.php?title=1769_-_albume&amp;amp;diff=9805&amp;amp;oldid=9236&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Oros Ioana Diana</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1769_-_albume&amp;diff=9236&amp;oldid=prev</id>
		<title>Oros Ioana Diana: Pagină nouă: Tudoraș are o pasiune pentru muzică. El deține câte K albume din discografia fiecăreia dintre cele C formații pe care le ascultă. În fiecare zi, Tudoraș extrage la întamplare exact Q albume din colecția sa, pe care le ascultă în cursul zilei. &lt;br&gt; La finalul zilei, Tudoraș analizează albumele ascultate. Concret, el numără de la câte formații diferite provin cele Q albume alese și își notează această valoare. &lt;br&gt; Care va fi media aritmetică a valorilo...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1769_-_albume&amp;diff=9236&amp;oldid=prev"/>
		<updated>2024-01-08T19:51:40Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: Tudoraș are o pasiune pentru muzică. El deține câte K albume din discografia fiecăreia dintre cele C formații pe care le ascultă. În fiecare zi, Tudoraș extrage la întamplare exact Q albume din colecția sa, pe care le ascultă în cursul zilei. &amp;lt;br&amp;gt; La finalul zilei, Tudoraș analizează albumele ascultate. Concret, el numără de la câte formații diferite provin cele Q albume alese și își notează această valoare. &amp;lt;br&amp;gt; Care va fi media aritmetică a valorilo...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Tudoraș are o pasiune pentru muzică. El deține câte K albume din discografia fiecăreia dintre cele C formații pe care le ascultă. În fiecare zi, Tudoraș extrage la întamplare exact Q albume din colecția sa, pe care le ascultă în cursul zilei.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
La finalul zilei, Tudoraș analizează albumele ascultate. Concret, el numără de la câte formații diferite provin cele Q albume alese și își notează această valoare.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Care va fi media aritmetică a valorilor notate, dacă procesul se repetă pentru un număr infinit de zile? &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Cu alte cuvinte, care este valoarea medie (expected value) a numărului de formații ascultate într-o zi?&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul albumein.txt conține pe prima linie trei valori separate prin spațiu: C K Q.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Fișierul albumeout.txt trebuie să conțină pe prima linie o singură valoare reală: media aritmetică a valorilor notate de Tudoraș.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;1 ≤ C, K ≤ 1000&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;1 ≤ Q ≤ min(1000, C*K)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*Pentru teste în valoare de 10 puncte, &amp;#039;&amp;#039;&amp;#039;K = 1&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
*Pentru alte teste în valoare de 10 puncte, &amp;#039;&amp;#039;&amp;#039;Q = C * K&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
*Pentru alte teste în valoare de 20 de puncte, &amp;#039;&amp;#039;&amp;#039;C * K ≤ 10&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
*În fiecare zi, toate albumele au probabilitate egală de a fi extrase.&lt;br /&gt;
*Rezultatul este considerat corect dacă are o eroare absolută de cel mult 10**-6.&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
; albumein.txt&lt;br /&gt;
: 2 2 2&lt;br /&gt;
; albumeout.txt&lt;br /&gt;
: 1.666666667&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
; albumein.txt&lt;br /&gt;
: 232 654 27 &lt;br /&gt;
; albumeout.txt&lt;br /&gt;
: 25.542102567 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#1769 - albume&lt;br /&gt;
def calculate_expected_value(C, K, Q):&lt;br /&gt;
    expected_value = 0&lt;br /&gt;
    for i in range(1, C + 1):&lt;br /&gt;
        probability = i / C&lt;br /&gt;
        expected_value += probability * min(Q, i * K)&lt;br /&gt;
&lt;br /&gt;
    return expected_value&lt;br /&gt;
&lt;br /&gt;
def check_restrictions(C, K, Q):&lt;br /&gt;
    if not (1 &amp;lt;= C &amp;lt;= 1000):&lt;br /&gt;
        return False&lt;br /&gt;
    if not (1 &amp;lt;= K &amp;lt;= 1000):&lt;br /&gt;
        return False&lt;br /&gt;
    if not (1 &amp;lt;= Q &amp;lt;= min(1000, C * K)):&lt;br /&gt;
        return False&lt;br /&gt;
    if K != 1 and Q == C * K:&lt;br /&gt;
        return False&lt;br /&gt;
    if C * K &amp;gt; 10:&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    # Citirea datelor de intrare&lt;br /&gt;
    with open(&amp;#039;albumein.txt&amp;#039;, &amp;#039;r&amp;#039;) as file:&lt;br /&gt;
        C, K, Q = map(int, file.readline().split())&lt;br /&gt;
&lt;br /&gt;
    # Verificare restricții&lt;br /&gt;
    if not check_restrictions(C, K, Q):&lt;br /&gt;
        print(&amp;quot;false&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    # Calculul valorii așteptate (expected value)&lt;br /&gt;
    result = calculate_expected_value(C, K, Q)&lt;br /&gt;
&lt;br /&gt;
    # Scrierea rezultatului în fișierul de ieșire&lt;br /&gt;
    with open(&amp;#039;albumeout.txt&amp;#039;, &amp;#039;w&amp;#039;) as file:&lt;br /&gt;
        file.write(&amp;#039;{:.6f}&amp;#039;.format(result))&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicatie ==&lt;br /&gt;
În primul exemplu, există două formații, fiecare cu două albume. Numerotăm albumele în următorul fel: &lt;br /&gt;
&lt;br /&gt;
*a1 = 1 (primul album al primei formații) &lt;br /&gt;
*a2 = 1 (al doilea album al primei formații) &lt;br /&gt;
*a3 = 2 (primul album al celei de-a doua formații) &lt;br /&gt;
*a4 = 2 (al doilea album al celei de-a doua formații) &lt;br /&gt;
Suma numărului de formații din fiecare caz este egală cu &amp;#039;&amp;#039;&amp;#039;1+2+2+1+2+2+2+2+1+2+2+1 = 20&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Cele 12 cazuri au probabilitate egală de a se întâmpla.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Rezultatul este &amp;#039;&amp;#039;&amp;#039;20 / 12 = 1.(6)&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Oros Ioana Diana</name></author>
	</entry>
</feed>