Уведомления

Группа в Telegram: @pythonsu

#1 Июль 7, 2014 20:41:05

Python777
Зарегистрирован: 2014-07-07
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Задачка с подбрасыванием монетки

Здравствуйте! Я бы хотел, чтобы вы мне помогли с решением задачи из книги Майкла Доусона “ Программируем на Питон, для начинающих”. Я буквально недавно начал изучать этот язык программирования да и вообще само программирование( в институте Паскаль изучали), и вроде бы примеры из этой книги более или менее понятны. Но вот решение некоторых задач для самопроверки в конце каждой главы, меня просто выбивает из колеи, потому что вроде бы как думаешь. что задания даются сугубо на основе пройденного материала, но сложности почему-то возникают довольно неприятные. Покупал эту книгу на Ozon. Там писалось, что все для новичков идеально разжевывается, но на своем опыте понимаю, что это далеко не так. Видимо еще и перевод с английского не идеален. Но все же продолжаю ее изучать. Может кто из старичков этого форума посоветует, как лучше изучать этот язык программирования.

А теперь сама задача: Напишите программу, которая бы “подбрасывала” условную монету 100 раз и сообщала, сколько раз выпал орел, а сколько - решка.

Офлайн

#2 Июль 7, 2014 20:57:10

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Задачка с подбрасыванием монетки

Python777
Может кто из старичков этого форума посоветуйте
Стиль изучения языков индивидуален. Чтобы не возникало сомнений что вы еще не все знаете, прочитайте книжку сразу от корки до корки. :) Обычно это можно сделать за 1 день.



Офлайн

#3 Июль 7, 2014 22:31:49

Python777
Зарегистрирован: 2014-07-07
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Задачка с подбрасыванием монетки

А насчет задачки с монетой? Или это в другой раздел форума?
Вот один из моих вариантов неверного решения задачи:
import random
x=1
y=2
z=0
s = random.randint(1,2)
while z != 100:
s = random.randint(1,2)
z += 1
s += 1
print(s)
print(z)
input(“\n\nНажмите Enter, чтобы выйти.”)

Отредактировано Python777 (Июль 7, 2014 22:38:11)

Офлайн

#4 Июль 7, 2014 22:38:31

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

Задачка с подбрасыванием монетки

Python777
Я буквально недавно начал изучать этот язык программирования да и вообще само программирование( в институте Паскаль изучали)

Ну да, для начала нужно разделить кодинг и программирование. Кодинг программу не делает.

Это всё равно, что усиленно изучать кисти и краску, чтобы написать картину. Или усиленно изучать молоток, пилу, дерево и гвозди, чтобы построить дом.

Python777
А теперь сама задача: Напишите программу, которая бы “подбрасывала” условную монету 100 раз и сообщала, сколько раз выпал орел, а сколько - решка.

Фактически тебе для начала нужно построить математическую модель монеты. То есть представить, чем является монета в математическом смысле. К питону это мало отношения имеет.



Офлайн

#5 Июль 7, 2014 22:41:57

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

Задачка с подбрасыванием монетки

import random
sum(int(random.getrandbits(1)) for x in range(100))

Офлайн

#6 Июль 7, 2014 23:04:47

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

Задачка с подбрасыванием монетки

>>> import random
>>> 
>>> def f(n):
...     seq = (random.randint(0, 1)
...            for i in range(n))
...     
...     dct = {}
...     for i in seq:
...         dct[i] = dct.get(i, 0) + 1
...     
...     return dct[1], dct[0]
... 
>>> f(100)
(48, 52)
>>> f(100)
(39, 61)
>>> f(1000)
(476, 524)
>>>



Офлайн

#7 Июль 7, 2014 23:40:15

Python777
Зарегистрирован: 2014-07-07
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Задачка с подбрасыванием монетки

Спасибо за ответы. В общем, я так понимаю, что программирование это прежде всего алгоритм. Но вот как научиться составлять правильно алгоритмы, с чего лучше всего начинать новичку, чтобы подобные задачи с монеткой можно было решать без особых проблем??

Офлайн

#8 Июль 24, 2014 17:36:13

Symfo
Зарегистрирован: 2014-07-24
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Задачка с подбрасыванием монетки

Тоже только начал изучать программирование с этой же книжки. У меня получилась такая программа:

import random
orel = 0
resh = 0
i = 0
while i<1000:
    i += 1
    coin = random.randint(1,2)
    if coin == 1:
        orel += 1
    if coin == 2:
        resh += 1
print ("Решек", resh)
print ("Орлов", orel)
>>> 
Решек 501
Орлов 499

В коде использовал только то, что было в книге до этого задания. Я бы посоветовал просто внимательнее читать. Ничего сложного нет.

Отредактировано Symfo (Июль 24, 2014 17:42:38)

Офлайн

#9 Окт. 4, 2015 14:05:18

Qwed
Зарегистрирован: 2015-10-04
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Задачка с подбрасыванием монетки

import random
orel = 0
resh = 0
count = 0
while count != 100:
    mon = random.randint(1, 2)
    count += 1
    if mon == 1:
        orel += 1
        
    elif mon == 2:
        resh += 1
        
print("Орел выпал", orel)
print("Решка выпал", resh)

Офлайн

#10 Окт. 4, 2015 19:22:19

old_monty
Зарегистрирован: 2015-09-27
Сообщения: 238
Репутация: +  20  -
Профиль   Отправить e-mail  

Задачка с подбрасыванием монетки

Эта задача слишком простая даже для начинающих. Может, кому-то интересно попробовать свои силы в чуть более сложном варианте?
Пусть подбрасываются одновременно 2 монеты. Нужно составить программу (желательно короткую и понятную) для подсчета и вывода на экран всех возможных результатов:

  • Орел и решка (в какой из двух монет что выпало, пусть здесь это будет безразлично)
  • Обе монеты - орел
  • Обе монеты - решка





Отредактировано old_monty (Окт. 4, 2015 19:25:32)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version