Потребно е да се напише Python програма за пресметка на фреквенцијата на зборовите кои се ...
На излез треба да се испечатат зборовите и нивната фреквенција на појавување, така што зборовите
ќе бидат алфабетски поредени по азбучен редослед.
Пример на влез на програмата:
New to Python or choosing between Python 2 and Python 3? Read Python 2 or Python 3.
Излез:
2:2
3.:1
3?:1
New:1
Python:5
Read:1
and:1
between:1
choosing:1
or:2
to:1
Даден е робот кој се движи во рамнина почнувајќи од позицијата (0,0). Роботот може да се движи ГОРЕ, ДОЛУ, ЛЕВО и ДЕСНО во дадена рамнина. Патеката на движење на роботот е дадена на следниот начин:
- UP 5
- DOWN 3
- LEFT 3
- RIGHT 2
Ова означува дека роботот се движел 5 чекори во насока горе, 3 чекори во насока долу, 3 чекори во насока лево и 2 чекори во насока десно. Потребно е да се пресмета Евклидово и Менхетен растојание на моменталната позиција на роботот по движењето и почетната позиција. Ако растојанието има
Пример:
Ако дадените торки се дадени како влез на програмата:
UP 5
DOWN 3
LEFT 3
RIGHT 2
, тогаш излезот на програмата треба да биде 2.24 за евклидовото растојание и 3 за менхетен растојанието (моменталната позиција на роботот е (-1, 2)).
euclidean = sqrt((x1-x2)^2 + (y1-y2)^2)
manhattan = |x1 - x2| + |y1 - y2|
Брискола е Италијанска игра со карти, каде што со се вклучуваат 40 карти со 4 форми (hearts, spades, clubs и diamonds) и со 10 карти за секоја форма. Во овој предизвик, нотацијата што се користи за картите е стринг што ја содржи вредноста на картата (со почетна голема буква за картите без бројка) и мала иницијална буква за формата, пр.:
Ah = Ace of Hearts
2s = Two of Spades
Jc = Jack of Clubs
Kd = King of Diamonds
Максималниот број на поени е 120. Кога се бројат постигнатите поени на крајот на играта, картите ги имаат следниве вредности:
Ace: 11 поени
Three: 10 поени
King: 4 поени
Queen: 3 поени
Jack: 2 поени
Било која друга карта нема вредност (0 поени).
Секоја игра на Брискола е направена од две кола. По првото коло, поените се бројат за играчот и за противникот, и овие поени (плус 1) ја постават целта за победа на играта, по што се игра второто коло. Потребно е да се имплементира функција која прима две листи како влез (колекцијата од карти на играчот од првото коло и колекцијата на карти од второто коло), и враќа како излез:
"Win!" ако во второто коло играчот има поголем резултат на поените од противникот во првото коло.
"Lose!" ако во второто коло играчот има помал рзултат од противникот во првото коло.
"Draw!" ако во второто коло играчот има ист вкупен број на поени како и противникот.
Примери:
briscola_score(
["3c", "3s", "Qd", "Jh", "5d", "Jc", "6d", "Ad", "Js", "Qc"],
["Jd", "Kd", "4c", "6s", "Ks", "5c", "3d", "As", "Jh", "6h"]
) ➞ "You Lose!"
# Igrachot ima 43 poeni vo prvoto kolo. Potrebno e da se osvojat najmalku 78 poeni
# vo vtoroto kolo. Brojot na poeni na igrachot vo vtoroto kolo e 33.
briscola_score(
["Ac", "As", "3d", "3h", "3s", "Ah", "Kd"],
["3d", "Ad", "Ac", "As", "Ah"]
) ➞ "You Win!"
# Igrachot ima 67 poeni vo prvoto kolo. Potrebno e da se osvojat najmalku 54 poeni
# vo vtoroto kolo. Brojot na poeni na igrachot vo vtoroto kolo e 54.
briscola_score(
["Ac", "As", "3d", "3h", "3s", "Ah", "Kd"],
["3d", "Ad", "Ac", "As", "3h"]
) ➞ "Draw!"
# Igrachot ima 67 poeni vo prvoto kolo. Potrebno e da se osvojat najmalku 54 poeni
# vo vtoroto kolo. Brojot na poeni na igrachot vo vtoroto kolo e 53. Vkupniot rezultat
# e 120 poeni, sto e ist rezultat so protivnikot.
Пита дијаграм е кружна графичка репрезентација на податочно множество, каде што секоја фреквенција на класите е претставена со еден дел (кружен отсечок), одреден според амплитуда во степени добиени од единечната фреквенција на делот наспроти вкупните фреквенции на сите делови. Степените на секој дел може да се добијат со следење на следните чекори:
- Пресметајте ја вкупната вредност на фреквенциите.
- Пресметајте го процентот на фреквенцијата на секоја категорија поделен со вкупната вредност за фреквенциите.
- Трансформирајте го секој процент во степени помножејќи го за 360.
Дадени се податоци во речник, кадешто клучеви се категориите на податоците (претставени со букви), а вредности се фреквенциите на податоци. Имплементирајте функција што враќа мапа за да дизајнирате пита дијаграм, односно истиот речник со вредности трансформирани во степени наместо фреквенции. Заокружете ги финалните вредности до најблиската десетинка.
Примери:
pie_chart({ "a": 1, "b": 2 }) ➞ { "a": 120, "b": 240 }
pie_chart({ "a": 30, "b": 15, "c": 55 }) ➞ { "a": 108, "b": 54, "c": 198 }
pie_chart({ "a": 8, "b": 21, "c": 12, "d": 5, "e": 4 }) ➞ { "a": 57.6, "b": 151.2, "c": 86.4, "d": 36, "e": 28.8 }
Креирајте функција која го враќа мнозинството на гласови во листа. Мнозинството на гласови е елемент што се појавува > N / 2 пати во листата (каде што N е должината на листата).
Примери:
majority_vote(["A", "A", "B"]) ➞ "A"
majority_vote(["A", "A", "A", "B", "C", "A"]) ➞ "A"
majority_vote(["A", "B", "B", "A", "C", "C"]) ➞ None
Забелешки:
- Фреквенцијата на мнозинскиот глас мора да биде поголема од 1/2.
- Ако нема мнозинство на гласови, врати None.
- Ако листата е празна, врати None.
Оваа задача е англиски пресврт на јапонската игра со зборови Ширитори. Основната премиса е да се следат две правила:
- Првиот карактер на следниот збор мора да одговара на последниот карактер на претходниот збор.
- Даден збор не смее да се повтори во текот на играта.
Подолу е даден пример за игра на Ширитори:
["word", "dowry", "yodel", "leader", "righteous", "serpent"] #valid!
["motive", "beach"] # invalid! - beach should start with "e"
["hive", "eh", "hive"] # invalid! - "hive" has already been said
Напишете класа Shirikori која има два податочни атрибути:
- words: листа на претходно кажани зборови.
- game_over: променлина која има вредност True ако играта е завршена. и два методи:
- play: метода која на влез очекува збор како аргумент и проверува дали е валиден
(зборот треба да ги следи правилата #1 и #2 од погоре).
- Ако е валиден, го додава зборот на листата од зборови, и ја враќа листата на зборови како излез.
- Ако не е валиден (некое правило е прекршено), враќа "game over" и го поставува game_over на True.
- restart: метода која ја ресетира листата на зборови на празна листа [], и го поставува game_over на False. Потребно е да врати "game restarted".
Примери:
my_shiritori = Shiritori()
my_shiritori.play("apple") ➞ ["apple"]
my_shiritori.play("ear") ➞ ["apple", "ear"]
my_shiritori.play("rhino") ➞ ["apple", "ear", "rhino"]
my_shiritori.play("corn") ➞ "game over"
# Corn не почнува на "o".
my_shiritori.words ➞ ["apple", "ear", "rhino"]
my_shiritori.restart ➞ "game restarted"
my_shiritori.words ➞ []
# Листата на зборови треба да биде ресетирана на празна листа.
my_shiritori.play("hostess") ➞ ["hostess"]
my_shiritori.play("stash") ➞ ["hostess", "stash"]
my_shiritori.play("hostess") ➞ "game over"
# Зборовите не смеат да се повторуваат.
Четворица пријатели играат едноставна игра со коцки (играчите се означени со p1, p2, p3 и p4). Во секое коло, сите играчи фрлаат пар од шестстрани коцки. Играчот со најнизок вкупен резултат е отстранет. Ако најнискиот резултат го делат двајца или повеќе играчи, играчот во таа група со најнизок резултат од првата коцка е отстранет. Ако најнискиот резултат е сè уште споделен (т.е. двајца или повеќе играчи имаат исти фрлања во ист редослед), тогаш сите играчи повторно ги фрлаат коцките. Овој процес продолжува сè додека не остане еден играч. Ако е дадена листа на фрлања на коцките (дадени во редоследот на играчите за секое коло), вратете го победникот на играта.
Пример:
dice_game([(6, 2), (4, 3), (3, 4), (5, 4), (3, 5), (1, 5), (4, 3), (1, 5), (1, 5), (5, 6), (2, 2)]) ➞ "p1"
p1 p2 p3 p4
Round 1 -> (6, 2), (4, 3), (3, 4), (5, 4) Player 3 removed.
Round 2 -> (3, 5), (1, 5), (4, 3) Player 2 removed.
Round 3 -> (1, 5), (1, 5) No lowest score, players roll again.
Round 4 -> (5, 6), (2, 2) Player 1 wins!
За дадена 3x3 матрица на завршена игра на „икс точка“, напишете функција која враќа дали дадената игра е победа за „X“, подеба за „О“, или „Draw“, каде што „X“ и „О“ се претставуваат себе си во матрицата, додека „E“ преттавува празно поле.
Примери:
tic_tac_toe([
["X", "O", "X"],
["O", "X", "O"],
["O", "X", "X"]
]) ➞ "X"
tic_tac_toe([
["O", "O", "O"],
["O", "X", "X"],
["E", "X", "X"]
]) ➞ "O"
tic_tac_toe([
["X", "X", "O"],
["O", "O", "X"],
["X", "X", "O"]
]) ➞ "Draw"
Напишете функција што се враќа True ако витезите се поставени на шаховска табла, така што никој витез не може да фати друг витез. 0-те претставуваат празни квадрати, а 1-те претставуваат витези. Витезот може да се поместува (да нападне) во сите насоки на L-форма движење.
Примери:
cannot_capture([
[0, 0, 0, 1, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 1, 0, 0, 0, 1, 0, 0],
[0, 0, 0, 0, 1, 0, 1, 0],
[0, 1, 0, 0, 0, 1, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 1, 0, 0, 0, 0, 0, 1],
[0, 0, 0, 0, 1, 0, 0, 0]
]) ➞ True
cannot_capture([
[1, 0, 1, 0, 1, 0, 1, 0],
[0, 1, 0, 1, 0, 1, 0, 1],
[0, 0, 0, 0, 1, 0, 1, 0],
[0, 0, 1, 0, 0, 1, 0, 1],
[1, 0, 0, 0, 1, 0, 1, 0],
[0, 0, 0, 0, 0, 1, 0, 1],
[1, 0, 0, 0, 1, 0, 1, 0],
[0, 0, 0, 1, 0, 1, 0, 1]
]) ➞ False
Корисникот замислува еден број помеѓу 1 и 1000000000. Потоа на влез програмата кажува број а корисникот треба да избере дали бројот е точен, поголем или помал од неговиот замислен број. Играта завршува кога програмата ќе го погоди бројот кој го замислил корисникот. Забелешка: размислете за оптимална стратегија. Не е препорачано да се итерира низ сите можни броеви од 1 се до 1000000000 за да се стигне до посакуваниот број. Како би го намалувале просторот на пребарување најоптимално?
Пример:
Корисникот замислува 9999
>>>Zamislete broj
>>>Dali vashiot broj e 5000?
Pogolem
>>>Dali vashiot broj e 100000?
Pomal
>>>Dali vashiot broj e 10000?
Pomal
>>>Dali vashiot broj e 7500?
Pogolem
>>>Dali vashiot broj e 9999?
Tocen