Python :: Aufgabe #105
6 Lösungen

Nachbar-Dupletten (Arrays)
Anfänger - Python
von AlHedi
- 30.04.2016 um 12:34 Uhr
Es sollen die Anzahl von den Nachbar-Dupletten eines Zahlen-Arrays ermittelt werden.
Die Nachbar-Dupletten sind gleiche benachbarte Zahlen in einem Array.
Es soll außerdem auf folgendes geachtet werden:
Die Nachbardupletten sind genau nur für zwei benachbarte Mitglieder definiert - sollte ein drittes Mitglied dabei benachbart sein, wird es nicht mitgezählt, weil es noch einen gleichen Nachbar braucht.
bspw.: Array = [3,3,7] : Ausgabe = 1
Array = [3,3,3] : Ausgabe = 1 ( Die Mitglieder von Index 0 und 1 sind benachbart, der Index 2 braucht auch ein Nachbar aber hat keinen
Array = [3,3,3,3] : Ausgabe = 2
Array = [0, 3, 3, 3, 2, 7, 7, 7, 7, 3, 2, 1, 1, -2, 4, 4, 8, 9, 8, 6 ] : Ausgabe = 5
Entnommen aus dieser Aufgabenstellung: fotos-hochladen.net
Die Nachbar-Dupletten sind gleiche benachbarte Zahlen in einem Array.
Es soll außerdem auf folgendes geachtet werden:
Die Nachbardupletten sind genau nur für zwei benachbarte Mitglieder definiert - sollte ein drittes Mitglied dabei benachbart sein, wird es nicht mitgezählt, weil es noch einen gleichen Nachbar braucht.
bspw.: Array = [3,3,7] : Ausgabe = 1
Array = [3,3,3] : Ausgabe = 1 ( Die Mitglieder von Index 0 und 1 sind benachbart, der Index 2 braucht auch ein Nachbar aber hat keinen
Array = [3,3,3,3] : Ausgabe = 2
Array = [0, 3, 3, 3, 2, 7, 7, 7, 7, 3, 2, 1, 1, -2, 4, 4, 8, 9, 8, 6 ] : Ausgabe = 5
Entnommen aus dieser Aufgabenstellung: fotos-hochladen.net
Lösungen:

# python2 # -*- coding: utf-8 -*- a = [] b = input("Bitte für das Array beliebig viele, durch Komma getrennte Zahlen eingeben:\n\n") a.extend(b) # Zähler für Dubletten counter = 0 # Zähler für die Array-Elemente arr_item = 0 # -1 damit das Array nicht verlassen wird while arr_item < (len(a) -1): if a[arr_item] == a[arr_item + 1]: # Dublette zählen counter = counter + 1 # Zweites Dubletten-Element überspringen arr_item = arr_item + 1 # Ein Element weiterrücken arr_item = arr_item + 1 print "\nAnzahl enthaltener Dubletten:", counter

#!/usr/bin/python3 # -*- encoding: utf-8 -*- # #>>>autor: Sebastian Müller #>>>licence: GPL #>>>contact: mypythonmueller@gmail.com # #Programm nach folgender Aufgabenstellung: #Es sollen die Anzahl von den Nachbar-Dupletten eines Zahlen-Arrays ermittelt werden. #Die Nachbar-Dupletten sind gleiche benachbarte Zahlen in einem Array. #Es soll außerdem auf folgendes geachtet werden: #Die Nachbardupletten sind genau nur für zwei benachbarte Mitglieder definiert - #sollte ein drittes Mitglied dabei benachbart sein, wird es nicht mitgezählt, #weil es noch einen gleichen Nachbar braucht. #bspw.: Array = [3,3,7] : Ausgabe = 1 #Array = [3,3,3] : Ausgabe = 1 ( Die Mitglieder von Index 0 und 1 sind benachbart, #der Index 2 braucht auch ein Nachbar aber hat keinen #Array = [3,3,3,3] : Ausgabe = 2 #Array = [0, 3, 3, 3, 2, 7, 7, 7, 7, 3, 2, 1, 1, -2, 4, 4, 8, 9, 8, 6 ] : Ausgabe = 5 def nachbardupletten(array): runzahler = 0 dupzahler = 0 for i in array: runzahler += 1 if runzahler == 1: akt = i continue if i == akt: dupzahler += 1 runzahler = 0 else: akt = i return dupzahler arr1 = [3,3,3,3] #2 arr2 = [0, 3, 3, 3, 2, 7, 7, 7, 7, 3, 2, 1, 1, -2, 4, 4, 8, 9, 8, 6] #5 arr3 = [1, 1, 3, 4, 5, 5, 5, 6, 3, 4, 4, 8, 8, 8, 8, 8, 9, 4,5, 5, 5, 7] #6 arr4 = [1, 1, 1, 3, 1, 1, 1, 3, 1, 1, 1, 3, 1, 1, 1, 3, 1, 1, 1, 3, 1, 1, 1,] #6 arr5 = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,] #11 print(nachbardupletten(arr1)) print(nachbardupletten(arr2)) print(nachbardupletten(arr3)) print(nachbardupletten(arr4)) print(nachbardupletten(arr5))

print('*** Bitte geben sie Zahlen ein. Zum beenden "e" eingeben. ***\n') index = 0 array = [] paar = 0 doppelt = False while True: eingabe = input('Bitte geben sie die '+str(index+1)+'te Zahl ein: ') if eingabe == 'e': print('\nDanke fuer ihr Interesse!\n') break index += 1 eingabe = int(eingabe) array.append(eingabe) print(array) for i in range(len(array)): if i == (len(array)-1): break if doppelt: doppelt = False elif array[i] == array[i+1]: paar += 1 doppelt = True print('Es sind', paar,'Zahlenpaar(e) vorhanden.')
Hier meine Lösung. Es wurde Python 3 genutzt.
Python-Code

Liste =eval(input('Bitte geben Sie das zu bearbeitende Array in der Form\n[n,n,n,n] ein!:\n')) index = 0 Ausgabe = 0 while index < (len(Liste)-1): if Liste[index] == Liste[index+1]: Ausgabe += 1 index += 2 else: index += 1 print(Ausgabe)

def dupl_count(x, cnt=0) : if len(x) < 2: return cnt elif x[0] == x[1]: return dupl_count(x[2:], cnt+1) else: return dupl_count(x[1:], cnt)

""" neighbours of numbers in an array """ import random # gernerate random array array_length = random.randint(1,200) data= [random.randint(1,10) for i in range(array_length)] # get neighbours index,counter = 1,0 while index < array_length-1: if data[index] == data[index +1]: counter += 1 index +=1 index +=1 print('the array [%s] has %d neighbours' % (','.join([str(elem) for elem in data]),counter))