PROG0028 - Homo or hetero

no tags 

A list is homogenous if it contains at least two equal numbers. A list is heterogeneous if it contains at least two different numbers. For example, the list [2,2] is homogenous, and the list [2,1,4] is heterogeneous, the list [1,2,1,4] is both homogenous and heterogeneous, and the empty list is neither homogenous nor heterogeneous.

Assignment

Write a function homoOrHetero which can be used to determine the homogeneity and/or heterogeneity of a given list. The given list must be given to the function as an argument, and the function must print a string as a result that indicates the kind of list. The possible cases that need to be distinguished are

  • both: if the list is both homogenous as heterogeneous
  • homo: if the list is homogenous, but not heterogenous
  • hetero: if the list is heterogenous, but not homogenous
  • nothing: if the list is neither

Example

>>> homoOrHetero([9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9])
'homo'
>>> homoOrHetero([1, 10, 4, 5, 6, 2, 3])
'hetero'
>>> homoOrHetero([10, 9, 8, 10, 2, 10, 4, 6, 3, 7, 5, 4, 4, 7])
'both'
>>> homoOrHetero([7])
'nothing'

Een lijst is homogeen als ze ten minste twee gelijke getallen bevat. Een lijst is heterogeen als ze ten minste twee verschillende getallen bevat. Zo is de lijst [2,2] een voorbeeld van een homogene lijst, is de lijst [2,1,4] heterogeen, is de lijst [1,2,1,4] zowel homogeen als heterogeen, en is de lege lijst noch homogeen, noch heterogeen.

Opgave

Schrijf een functie homoOfHetero waarmee de homogeniteit en/of heterogeniteit van een gegeven lijst van natuurlijke getallen kan nagegaan worden. De gegeven lijst moet als argument aan de functie doorgegeven worden, en de functie moet als resultaat een string teruggeven die aangeeft om welk soort lijst het gaat. De mogelijke gevallen die hierbij moeten onderschreiden worden zijn

  • beide: als de lijst zowel homogeen als heterogeen is
  • homo: als de lijst homogeen is, maar niet heterogeen
  • hetero: als de lijst heterogeen is, maar niet homogeen
  • niets: als de lijst noch homogeen, noch heterogeen is

Voorbeeld

>>> homoOfHetero([9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9])
'homo'
>>> homoOfHetero([1, 10, 4, 5, 6, 2, 3])
'hetero'
>>> homoOfHetero([10, 9, 8, 10, 2, 10, 4, 6, 3, 7, 5, 4, 4, 7])
'beide'
>>> homoOfHetero([7])
'niets'


Added by:Peter Dawyndt
Date:2011-07-19
Time limit:10s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:PY_NBC
Resource:None