OliInfo

Giochi matematici vari, olimpiadi di fisica, chimica, informatica, greco, latino.
Avatar utente
moebius
Messaggi: 433
Iscritto il: 08 mag 2005, 19:14

Messaggio da moebius » 21 nov 2005, 18:03

Tanto per completezza, scrivete un testo decente per l'esercizio dei bovini in modo che pure chi non ha fatto la gara sappia di cosa parlate?
Da quello che ho intuito (e soprattutto dalla correzione di Azarus) credo abbia ragione Boll...
Fondatore: [url=http://olimpiadi.dm.unipi.it/oliForum/viewtopic.php?t=8899]Associazione non dimenticatevi dei nanetti![/url]
Membro: Club Nostalgici
Sono troppo scarso in italiano per usare parole con la c o la q...

Azarus
Messaggi: 580
Iscritto il: 01 gen 1970, 01:00
Località: Pisa

Messaggio da Azarus » 21 nov 2005, 18:06

Faccio un cut & paste dal forum a questo link: http://allenamenti.olimpiadi-informatica.it/

PARTE LOGICO-MATEMATICA

1) La risposta esatta vale 1 punto.
Se un uomo dipinge una stanza in 4 ore e un suo amico ne impiega 2, quanto tempo impiegherebbero dipingendola insieme? (Si assume che quando lavorano insieme ciascuno opera alla stessa velocità di quando lavora da solo).
a) 75 minuti
b) 80 minuti
c) 90 minuti
d) 180 minuti
=======================================================================
2) La risposta esatta vale 1 punto.
Se una gallina e mezza fa in media un uovo e mezzo in un giorno e mezzo, quante uova fanno in media 9 galline in 9 giorni?
Risposta aperta
=======================================================================
3) La risposta esatta vale 1 punto.
Quanti modelli di macchine di Formula 1 ha Mario se sono tutte Ferrari meno tre, sono tutte McLaren meno due ed ha anche una Williams?
a) 3
b) 4
c) 5
d) 6
=======================================================================
4) La risposta esatta vale 1 punto.
Una maestra ha una scatola di 1300 penne, e vuole distribuirle in modo equo ai suoi alunni. Inizialmente distribuisce ad ogni alunno un numero di penne pari al numero di alunni stessi. Dopo di che, visto che ne rimangono ancora molte, decide di darne altre due ciascuno. Alla fine nella scatola ne rimangono solo cinque, che ella tiene per sé. Quanti sono gli alunni?
Risposta aperta
=======================================================================
5) La risposta esatta vale 1 punto.
Al ritorno dalla guerra durata parecchi anni, un giovane torna a casa. Ad attenderlo trova la cognata del marito dell'unica sorella di sua madre. Dato che il marito non ha fratelli, chi e’ la donna che lo ha accolto?
a) madre
b) sorella
c) zia
d) nonna
=======================================================================
6) La risposta esatta vale 1 punto.
Fondendo una statua di bronzo alta 50 cm e piena internamente, realizzo con il bronzo fuso ottenuto tante statuette simili (cioè con le stesse proporzioni della statua originale), anch'esse internamente piene, ma dell'altezza di 10 cm. Quante statuette riesco a realizzare?
a) 5
b) 25
c) 50
d) 125

=======================================================================
7) La risposta esatta vale 1 punto.
A Policrate che gli domandava quanti erano i suoi allievi, così rispose Pitagora:
"I miei allievi possono essere suddivisi in insiemi disgiunti; in particolare
- la metà coltiva la matematica
- la quarta parte si dedica allo studio della natura
- la settima parte ascolta con religioso silenzio le mie parole
- inoltre ci sono tre allievi che non fanno nessuna delle cose precedenti"
Quanti erano gli allievi di Pitagora?
Risposta aperta
=======================================================================
La risposta esatta vale 1 punto.
Data una torre, costruita inserendo N = 23 mattoncini LEGO uno sopra l'altro, indicare il numero minimo di porzioni in cui suddividere la torre per essere sicuri che sia possibile prendere un qualsiasi numero (compreso fra 1 e 22, estremi inclusi) di mattoncini senza smontare le porzioni e selezionando un opportuno insieme di porzioni.
Ad esempio se N = 6 allora la risposta è 3. Infatti la divisione dei mattoncini in tre porzioni di dimensioni 1, 2 e 3 soddisfa i requisiti. Inoltre, non esiste una soluzione che divide i mattoncini in due sole porzioni; infatti, se si dividono 6 mattoncini in porzioni da 1 e 5 mattoncini non si riesce a formare un insieme di 2 (oppure di 3 o di 4) mattoncini; un analogo problema sorge se si dividono 6 mattoncini in due porzioni da 2 e 4 oppure in due porzioni da 3.
Se N = 23 qual’è il numero minimo di porzioni?
a) 4
b) 5
c) 6
d) 7
=======================================================================
9) La risposta esatta vale 2 punti.
Il direttore di un ristorante con capienza massima 150 posti non ricorda quante erano le persone da lui servite in occasione dello scorso cenone di fine anno.
Ricorda però che volendo sistemare tutte le persone servite in tavoli da 3 ne restava fuori esattamente una; inoltre, la stessa cosa succedeva sistemando tutte le persone in tavoli da 5 o tutte in tavoli da 7.
Quante erano le persone servite in occasione dello scorso cenone di fine anno?
Risposta aperta
=======================================================================
10) La risposta esatta vale 2 punti.
Siano A e B due variabili booleane. Quali delle seguenti espressioni è equivalente a
not (A or B) and (A or (A and B))

a) (not A and not B and A) or B
b) not A or (not B and A) or (A and B)
c) not A and not B and A and B
d) Nessuna delle risposte precedenti


=======================================================================
11) La risposta esatta vale 2 punti.
Un compito in classe inizia quando le lancette dell'orologio sono sovrapposte fra le 8 e le 9 e termina quando sono sovrapposte fra le 10 e le 11. Quanti minuti dura il compito?
a) esattamente 120
b) fra 120 e 124
c) fra 124 e 128
d) nessuna delle precedenti
=======================================================================
12) La risposta esatta vale 2 punti.
In un allevamento di bovini bisogna selezionare il più leggero fra 4 capi, avendo a disposizione un unico tipo di bilancia che, date due coppie di bovini, indica la coppia più leggera (si assuma che non esistano due coppie di bovini dello stesso identico peso).
Nota bene: la bilancia non permette di confrontare il peso di due bovini fra loro e non fornisce il peso di una coppia di bovini.
Dire quale delle seguenti affermazioni è vera:
a) 2 pesate sono sempre sufficienti
b) 2 pesate non sono sempre sufficienti e 3 pesate sono sempre sufficienti
c) ci sono casi in cui questo tipo di bilancia non permette di trovare il bovino più leggero
d) nessuna delle precedenti
Ultima modifica di Azarus il 21 nov 2005, 18:08, modificato 1 volta in totale.

Azarus
Messaggi: 580
Iscritto il: 01 gen 1970, 01:00
Località: Pisa

Messaggio da Azarus » 21 nov 2005, 18:07

Ecco anche il resto:

ESERCIZI DI PROGRAMMAZIONE

1) La risposta esatta vale 1 punto.
Dopo l'esecuzione della seguente porzione di codice:

program principale;
var
a: integer;
b: integer;
procedure funzione(var a: integer; b: integer);
var
temp: integer;
begin
temp:=a;
a:=b;
b:=temp;
end;
begin
a:=2;
b:=5;
funzione(a,b);
end.

Quanto valgono a e b?
Risposta aperta
=======================================================================2) La risposta esatta vale 1 punto.
Si consideri la seguente funzione.

function funzione() : integer;
var
contatore : integer;
sum : integer;
begin
contatore := 0;
sum := 0;
while ( contatore <= 4 ) do
begin
contatore := contatore + 1;
sum := sum + contatore;
end;
funzione := sum;
end;

Quale valore restituisce la funzione?
Risposte:
a) 10
b) 15
c) 16
d) Nessuna delle risposte precedenti
=======================================================================3) La risposta esatta vale 2 punti.
Si consideri la seguente funzione:

type sequenza = array[1..10] of integer;

procedure calcola(var vett:sequenza; n:integer);
var i,j,x,y: integer;
begin
for i := 1 to n do
begin
y := vett[1];
for j := 1 to n-1 do
begin
x := vett[j+1];
vett[j+1] := y;
y := x;
end;
vett[1] := y;
end;
end;

Assumendo che vett contenga il vettore [10,9,8,7,6,5,4,3,2,1], quali sono gli elementi di vett dopo l'esecuzione di calcola (usando 10 come secondo parametro)?
Risposte:
a) [1,2,3,4,5,6,7,8,9,10]
b) [10,9,8,7,6,5,4,3,2,1]
c) [1,3,5,7,9,2,4,6,8,10]
d) nessuna delle precedenti


=======================================================================4) La risposta esatta vale 3 punti.
Cosa stampa il seguente programma?

program cosa(input,output);
type vett=array[0..10] of integer;
var a,b,i: integer;
arr1,arr2: vett;

function funzione(arr: vett; dim: integer) : integer;
var i,t: integer;
begin
i:=0;
t:=0;
if ((dim mod 2)=1) then
while (i<dim) do
begin
t:=arr;
arr:=arr[dim-i-1];
arr[dim-i-1]:=t;
i:=i+1;
end
else
while (i< (dim div 2) ) do
begin
t:=arr;
arr:=arr[dim-i-1];
arr[dim-i-1]:=t;
i:=i+1;
end;
funzione:= arr[0];
end;


begin
for i:=0 to 9 do arr1:=i+1;
for i:=0 to 10 do arr2:=i+1;
a:=funzione(arr1,10);
b:=funzione(arr2,11);
writeln('a=',a,',b=',b);
end.

Risposte:
a) a=10,b=1
b) a=1,b=1
c) a=10,b=11
d) a=1,b=11
=======================================================================5) La risposta esatta vale 3 punti.
Cosa stampa il seguente programma?

program Test(input,output);
type vett=array[0..9] of integer;
var i,f,a,b :integer;
arr : vett;

function funzione1(arr: vett) :integer;
var i: integer;
begin
i:= 1;
while(arr <> -1) do i:= i * 2;
funzione1:=i;
end;

function funzione2(arr :vett; f: integer; k: integer) : integer;
var i,m,temp: integer;
begin
i:= 0; m:= 0;
temp:=-1;
while(i <= f) do
begin
m:= (i + f) div 2;
if(arr[m] = k) then temp:=m;
if((arr[m] = -1) or (arr[m] > k)) then
f:= m - 1
else
i:= m + 1;
end;
funzione2:= temp;
end;

begin
for i:=0 to 9 do arr:= -1;
arr[0]:=1;
arr[1]:=2;
arr[2]:=4;
arr[3]:=8;
f:=funzione1(arr);
a:=funzione2(arr,f,4);
b:=funzione2(arr,f,7);
writeln("a=",a,",b=",b);
end.

Risposte:
a) a=2,b=4
b) a=2,b=-1
c) a=-1,b=4
d) a=-1,b=-1
=======================================================================6) La risposta esatta vale 3 punti.
Data la seguente funzione che inizializza i valori di un array bi-dimensionale "matrice":

const N=5;
procedure inizializza( );
var
matrice : array [1..N, 1..N] of integer;
riga, colonna : integer;
begin
for riga := 1 to N do
for colonna := 1 to N do
begin
if ( riga = colonna ) then
matrice[riga, colonna] := 1
else if ( riga + colonna = N+1 ) then
matrice[riga, colonna] := 1
else if ( riga < colonna ) then
matrice[riga, colonna] := 0
else
matrice[riga, colonna] := matrice[colonna, riga]
end;

for riga := 1 to N do
begin
for colonna := 1 to N do
write( matrice[riga, colonna] );
writeln;
end
end;

Indicare quale tra le seguenti configurazioni vengono stampate dalla procedura "inizializza".
Risposte:
a)
1 1 1 1 1
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
1 1 1 1 1

b)
1 0 0 0 1
0 1 0 1 0
0 0 1 0 0
0 1 0 1 0
1 0 0 0 1

c)
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 1 0 0 0
1 0 0 0 0

d)
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
=======================================================================7) La risposta esatta vale 3 punti.
Sia data la seguente funzione ricorsiva:

function mistero(m : integer; n : integer) : integer;
begin
if ( m = 0 ) then
mistero := n
else if ( n=0 ) then
mistero := mistero( m-1, 1 )
else
mistero := mistero( mistero( m-1, n-1 ), n-1 )
end;

Calcolare quale tra le seguenti risposte corrisponde ai valori restituiti invocando:

writeln( mistero(0,3), ' ', mistero(1,3), ' ', mistero(2,3), ' ', mistero(3,3) );

Risposte:
a) 3 1 2 0
b) 3 2 1 0
c) 0 1 2 3
d) Nessuna delle risposte precedenti
=======================================================================
La risposta esatta vale 3 punti.
Si consideri la seguente funzione A.

function B(n:integer): integer;
forward;

function A(n:integer): integer;
begin
if (n>1) then
A:=n*B(n+1)
else
A:=1
end;

function B(n:integer): integer;
begin
if (n>1) then
B:=(n-1)*A(n-2)
else
B:=1
end;


Indicare quali sono i valori restituiti dalle invocazioni
A(1), A(2), A(3), A(4), A(5).

Risposte:
a) 1, 4, 24, 192, 1920
b) 1, 4, 36, 576, 14400
c) 1, 4, 16, 256, 65536
d) nessuna delle precedenti

Avatar utente
moebius
Messaggi: 433
Iscritto il: 08 mag 2005, 19:14

Messaggio da moebius » 21 nov 2005, 18:40

Thx :D
Confermo allora che pure per me la risposta al bovin-quiz è la c) :wink:
Fondatore: [url=http://olimpiadi.dm.unipi.it/oliForum/viewtopic.php?t=8899]Associazione non dimenticatevi dei nanetti![/url]
Membro: Club Nostalgici
Sono troppo scarso in italiano per usare parole con la c o la q...

Avatar utente
mitchan88
Messaggi: 469
Iscritto il: 01 gen 1970, 01:00
Contatta:

Messaggio da mitchan88 » 22 nov 2005, 14:22

Boll ha scritto:Su programmazione non so propiro, a me sembrava scambiasse le variabili, ma potrei benissimo sbagliarmi, gli altri risultati ti tornano?

Prendiamo 4 bovini, di pesi 8 4 2 1
Trovami un metodo per trovare il minimo con una bilancia a bracci che pesa solo due coppie alla volta.
E giusto come hai detto tu (in emtrambi i casi) (ho fatto la prova al compilatore)
Poi è giusto il 15 nel secondo pascal! :D

Cavolo, i bovini!!

Comunque ho fatto 20-22 punti... Dovrei essere passato, spero... :mrgreen:

(con i puntegi dell'anno scorso il primo, che ora è all'università, ha fatto 28, dunque...)
[url:197k8v9e]http://antrodimitch.wordpress.com[/url:197k8v9e]

Membro del fan club di Ippo_

Avatar utente
davided87
Messaggi: 35
Iscritto il: 01 gen 1970, 01:00
Località: Provincia di Lecce
Contatta:

Messaggio da davided87 » 22 nov 2005, 14:42

mitchan88 ha scritto:Comunque ho fatto 20-22 punti... Dovrei essere passato, spero... :mrgreen:

(con i puntegi dell'anno scorso il primo, che ora è all'università, ha fatto 28, dunque...)
Caro Mitchan credo proprio che ce l'hai fatta (a me sono passati 13 punti) comunque l'edizione di quest'anno non è confrontabile a quella dello scorso anno in quanto il punteggio massimo è passato da 60 a 35 e la difficoltà è diminuita notevolmente!

Avatar utente
davided87
Messaggi: 35
Iscritto il: 01 gen 1970, 01:00
Località: Provincia di Lecce
Contatta:

Messaggio da davided87 » 22 nov 2005, 14:44

davided87 ha scritto:a me sono passati 13 punti
scusate per l'errore intendevo "bastati"

Avatar utente
mitchan88
Messaggi: 469
Iscritto il: 01 gen 1970, 01:00
Contatta:

Messaggio da mitchan88 » 22 nov 2005, 17:44

davided87 ha scritto:
mitchan88 ha scritto:Comunque ho fatto 20-22 punti... Dovrei essere passato, spero... :mrgreen:

(con i puntegi dell'anno scorso il primo, che ora è all'università, ha fatto 28, dunque...)
Caro Mitchan credo proprio che ce l'hai fatta (a me sono passati 13 punti) comunque l'edizione di quest'anno non è confrontabile a quella dello scorso anno in quanto il punteggio massimo è passato da 60 a 35 e la difficoltà è diminuita notevolmente!
In effetti mi sembrava che si siano abbassati i punteggi! (e che la prova sia diventata più facile!)

Beh, per festeggiare la presunta vittoria sono andato ad ordinare Images And Words dei Dream Theater, arriverà fra dieci giorni (spero giusto per la conferma ufficiale :mrgreen: )
[url:197k8v9e]http://antrodimitch.wordpress.com[/url:197k8v9e]

Membro del fan club di Ippo_

CUCU
Messaggi: 40
Iscritto il: 01 nov 2005, 14:55

Messaggio da CUCU » 29 nov 2005, 21:22

Boll ha scritto:
CUCU ha scritto:
Boll ha scritto:Su programmazione non so propiro, a me sembrava scambiasse le variabili, ma potrei benissimo sbagliarmi, gli altri risultati ...
...

(Si prega di rispondere nel forum informatica).
Di tutta la tua risposta, CUCU, ho capito pochissimo, ma credo tu sia in errore se dici che bastano tre pesate, te lo dimostro.

Prendiamo A, B,C e D, dobbiamo trovare il minimo e abbiamo A>B+C+D, poichè A da qualche parte dobbiamo metterlo avremo che la parte della bilancia dove si trova A è sempre più pesante dell'altra, comunque io disponga gli altri tre. Detto questo, come faccio ad avere informazioni su essi, visto che le uniche informazioni di cui dispongo sono date dalla bilancia stessa?
Effettivamente avevo frainteso, pensavo ingenuamente che si trattasse di sempli confronti (un bovino contro un bovino) e non di confronti con due bovini su ogni piatto.
In tal caso non sembra possibile trovare il minimo.
Esercizio: dimostriamolo formalmente (soluzioni nel forum di Informatica).

Avatar utente
stefano88
Messaggi: 111
Iscritto il: 01 gen 1970, 01:00
Località: Latina
Contatta:

Messaggio da stefano88 » 16 nov 2006, 18:44

Sbaglio o l'edizione di quest'anno era di una facilità assurda? Alcune domande erano punti regalati, e comunque ho la vaga impressione che con un po' di logica anche senza conoscere C o Pascal molti possano aver fatto buoni risultati.

Avatar utente
Ponnamperuma
Messaggi: 411
Iscritto il: 10 lug 2006, 11:47
Località: Torino

Messaggio da Ponnamperuma » 16 nov 2006, 19:34

stefano88 ha scritto:Sbaglio o l'edizione di quest'anno era di una facilità assurda? Alcune domande erano punti regalati, e comunque ho la vaga impressione che con un po' di logica anche senza conoscere C o Pascal molti possano aver fatto buoni risultati.
Sono d'accordissimo... Tanto più che la mia conoscenza del Pascal si limita a quanto ho potuto apprendere in 3 ore di rivisitazione dei problemi della scorsa edizione... = non avevo praticamente alcun allenamento, solo ho capito cosa indica precisamente la sintassi del linguaggio...
E ho fatto tutti gli esercizi meno uno, sia in programmazione (il 5), sia in logica (il 10).
Il che, per essere stata una gara di un'ora sola di tempo, va oltre le mie aspettative... :D

Avatar utente
edriv
Messaggi: 1638
Iscritto il: 16 feb 2006, 19:47
Località: Gradisca d'Isonzo
Contatta:

Messaggio da edriv » 16 nov 2006, 20:04

Uff... io ho anche rischiato un'interrogazione di storia per il fatto che non chiamano i ragazzi del biennio. :roll:

Rispondi