Programlama soru çözümü

Microsoft gibi büyük firmalar diplomaya aşırı önem vermiyor.

Nereye vermiyor? Bana mulakatta master transkriptimden bir suru soru sordular. Turkiye'de kimse birak transkripten soru sormayi, istemiyor bile. Bir kere is basvurusu yap bakalim, en azindan hangi belgeleri istediklerini gor.

Microsoft'a, Google'a gelene kadar ortalama bir araba markasinin IT departmanina giremezsin diplomasiz.

40 yasina gelirsin, hayvan gibi open-source tecruben vardir, ismini ispatlamissindir; ancak o zaman diploma sormaz insanlar. Universite egitimi hayat boyu takip eder.
 
Herkes Microsoft üzerinde çalışacak diye bir şey yok, ülkende de kendini geliştirmeden bir yere gelemezsin. Sonuçta Microsoft gibi yerlere gelmeye çalışan çok insan var. Herkes giremez, bu süreçte işsiz kalmasını istemeyiz. Bu durumda biraz daha alçaktan bakmak ve olumsuz sonuçları da göze almak gerek bence. Güzel bir üniversite mezunu insan çoğu zaman bir adım öndedir gözümde. Genel olarak da bir proje girişimi değil de devamlı bir iş için diploma önemlidir. Ne kadar doğrudur bilemem.
Demek istediğim kendini derslere verdi diyelim sonra yks'de bir şekilde başarısız oldu ne olacak.0
Nereye vermiyor? Bana mulakatta master transkriptimden bir suru soru sordular. Turkiye'de kimse birak transkripten soru sormayi, istemiyor bile. Bir kere is basvurusu yap bakalim, en azindan hangi belgeleri istediklerini gor.

Microsoft'a, Google'a gelene kadar ortalama bir araba markasinin IT departmanina giremezsin diplomasiz.

40 yasina gelirsin, hayvan gibi open-source tecruben vardir, ismini ispatlamissindir; ancak o zaman diploma sormaz insanlar. Universite egitimi hayat boyu takip eder.
Benim duyguklarım böyle.
 
Demek istediğim kendini derslere verdi diyelim sonra YKS'de bir şekilde başarısız oldu ne olacak?
Çalışıp da yapamazsa ayrı alanlara yönelir ama önceliği üniversite olmalıdır, bence bu çok açık. Hobi olarak yazılım çalışabilir ve ilerde öğrenme konusunda sorun yaşamaz. Ancak derslere asılmak çok daha önemli.
 
Ben buna katılmıyorum, bence iyi bir üniversite kazanan insan iyi bir yazılım bilgisini de kapar. Sonuçta iyi hocalardan yazılım dersini herkes almıyor. Bu çok öne geçiren bir şey. Tabii bu benim düşüncem.

O iyi üniversite diye bahsettiklerinden birini bitirmiş biri olarak söylüyorum çok yanlış düşünüyorsun İyi üniversitede diye tanımlanan İstanbul Üniversitesini bitirdim.Çok az kaliteli hoca var. Javayı ilk defa gördüğüm halde dersini anlatan hocadan daha iyi bildiğime adım kadar eminim. iyi denilen üniversitelerin hocalarının iyi olup olmadığını bilemezsin. Ösym sıralamayı üniversite başarısına göre değil o üniversitedeye giren öğrencilerin başarısına göre yapıyor. Ayrıca iyi hoca iyi üniversitede olur diye bir şart da yok rezalet hocalar dolu istanbul üniversitesi. Yazılım bilgisi üniversitede öğrenilmez. Hiç bir üniversite iyi bir yazılımcı yapmaz sadece yazılımın syntaxını öğretir algoritmayı kurmak sana kalmıştır eğer sana bi algoritmayı dayatıyorsa zaten bi halt bildiği yoktur hocanın çünkü aynı işi yapan yüzlerce farklı kod yazabilirsin hepsi de birbirinden iyidir.
Nereye vermiyor? Bana mulakatta Master transkriptimden bir suru soru sordular. Türkiye'de kimse birak transkripten soru sormayi, istemiyor bile. Bir kere is basvurusu yap bakalim, en azindan hangi belgeleri istediklerini gor.

Microsoft'a, Google'a gelene kadar ortalama bir araba markasinin ıt departmanina giremezsin diplomasiz.

40 Yasin'a gelirsin, hayvan gibi open-Source tecruben vardir, ismini ispatlamissindir; ancak o zaman diploma sormaz insanlar. Universite egitimi hayat boyu takip eder.

Dostum öncelikle adam hiç önem vermiyor dememiş 🙂 aşırı önem vermiyorlar demiş transkripten soru sormak diplomaya önem verdikleri anlamına gelmez her üniversitenin aşağı yukarı dersleri benzer diplomaya bakmak ortalamaya üniversiteye bakmaya benzer ama elbette ki her şirket az çok bakar haklı olarak (ki Microsoft gibi çok fazla başvuru alan yerler elemek adına bakıyordur) ama şöyle bir durum da var ki aynı üniversiteden mezun olup 3.5 ortalama ile giremeyip te 2.5 ortalama ile girebilirsin herhangi bir şirkete(Microsoft gibi) şayet çok iyi biliyorsan başvurduğun pozisyonun gereksinimlerini.
 
Java:
private static double brutMaasHesapla(double current, double estimate, double alpha, double epsilon)
{
    double calculated = netMaasHesapla(estimate);
    if (Math.abs(1 - calculated / current) <= epsilon)
    {
        return estimate;
    }
    if (calculated > current)
    {
        if (alpha > 0)
        {
            return brutMaasHesapla(current, estimate - Math.abs(alpha * 0.5), alpha * -0.5, epsilon);
        }
        return brutMaasHesapla(current, estimate - Math.abs(alpha), alpha, epsilon)
    }
    if (alpha < 0)
    {
        return brutMaasHesapla(current, estimate - Math.abs(alpha * 0.5), alpha * -0.5, epsilon);
    }
    return brutMaasHesapla(current, estimate + Math.abs(alpha), alpha, epsilon);
}

Başta sabit adım büyüklüğü ile denedim ancak 200 küsür iterasyon gibi korkunç değerleri görünce istenilen değerin sağında veya solunda olmasına göre yön değiştiren ve her yön değiştirdiğinde adım büyüklüğünü yarıya indiren bir yapı kullandım. Normalde 3 parametreli olacaktı. Sonrasında hata payı (epsilon) değerini de parametre olarak ekledim.

Başlangıç için.
estimate = current * 1.5.
alpha = current * 0.05.
epsilon = 0.0001.

epsilon ne kadar küçük olursa istenilen ile gerçek değer birbirine o kadar yakın olur.
---- Ekleme.

Sabah saatlerinde sanırım gözümden kaçmış az önce tekrar okurken fark ettim.
Java:
private static double brutMaasHesapla(double current, double estimate, double alpha, double epsilon)
    {
        double calculated = netMaasHesapla(estimate);
        if (Math.abs(1 - calculated / current) <= epsilon)
        {
            return estimate;
        }
        if (calculated > current)
        {
            if (alpha > 0)
            {
                return brutMaasHesapla(current, estimate - Math.abs(alpha * 0.5), alpha * -0.5, epsilon);
            }
            return brutMaasHesapla(current, estimate - Math.abs(alpha), alpha, epsilon);
        }
        if (alpha < 0)
        {
            return brutMaasHesapla(current, estimate + Math.abs(alpha * 0.5), alpha * -0.5, epsilon);
        }
        return brutMaasHesapla(current, estimate + Math.abs(alpha), alpha, epsilon);
    }

Şeklinde olması lazım. 4. return içerisindeki -'nin + olması gerekiyordu.
 
Selam dostlar, kendimi geliştirmek için programlama soruları çözüyordum da bir soruda takıldım ve sizinle paylaşmak istedim. Bir iş için başvuru sorularıymış bu bulduklarım, yazılan kodların kullanılmaması ve başvuru suistimali olmaması için link vermeyeceğim. İki soruyu da atıyorum, ilkini çözdüm ama ikinciyi yapamadım. Yapamadım derken şöyle: Soruyu anlayamadım, anlasam belki bir ihtimal yapardım.

Çözdüğünüz dil fark etmez, benim amacım mantığı kavramak. İsterseniz hiç kod yazmayıp mantığını da direk yazabilirsiniz.

1. Atlı karınca

Bir lunaparkta atlı karınca var. Atlı karıncaya her seferinde k kişi binebiliyor. Atlı karınca bir gün içerisinde r defa çalışıyor.

Atlı karıncaya binmek isteyen n adet grup var. Her grupta 1 veya daha fazla kişi bulunabiliyor.

Her turda, sıradaki ilk gruptan başlayarak atlı karıncaya biniliyor. Eğer bir grubun tamamı için yer kalmadıysa daha fazla kişi binmeden tur başlıyor. Dolayısıyla atlı karınca tam dolmadan da çalışabiliyor. Tur bittikten sonra atlı karıncaya binen gruplar, bindikleri sırada, kuyruğun en arkasına yeniden katılıyor.

Atlı karıncaya her binen kişi 1 TL'ye bilet alıyor.

Örneğin, r=4, k=6 varsayalım. Atlı karıncaya binecek dört grup var ve bunların kişi sayıları 1, 4, 2, 1. ilk turda ilk iki grup sığabilir [1,4]. İlk tur bitince bu iki grup sıranın en sonuna geçecek ve sıra 2, 1, 1, 4 haline gelecek. İkinci turda [2, 1, 1] şeklinde 4 kişi sığabilecek. Şimdi sıra 4, 2, 1, 1 haline geldi. Üçüncü turda atlı karıncaya 6 kişi binecek [4, 2]. Sıra 1, 1, 4, 2 oldu. Dördüncü ve son turda altı kişi binecek, [1, 1, 4]. Atlı karınca toplamda 21 lira kazanmış oldu.

Input
İlk satırda boşlukla ayrılmış 3 adet rakam yer alacak: r, k ve n. İkinci satırda boşlukla ayrılmış şekilde n adet rakam yer alacak. Bu rakamlar gruplardaki kişi sayısını belirtecek. Örnek ınput.

4 6 4.
1 4 2 1.

Output
Program toplam kazanılan parayı yazacak

Optimizasyon ipuçları


1 – Sıranın o anki durumu için önceden hesaplama yapıldıysa yeniden hesaplama yerine önceden hesaplamanın sonucu kullanılabilir.

2 – En fazla n + 1 tur sonra sıranın durumu önceki durumlardan biri haline gelecek ve bir döngü oluşacaktır.

Python:
degerler=input().split(" ")
R=int(degerler[0])
k=int(degerler[1])
sayilar=input().split(" ")
for i in range(len(sayilar)):
sayilar[I]=int(sayilar[I])
para=0.
total=0.
l=0.
while R>0:
while total<k:
if not(total+sayilar[l]>k):
total+=sayilar[l]
l+=1.
else:
break.
for i in range(0,l):
asd=sayilar.pop(0)
para+=asd.
sayilar.append(asd)
l=0.
total=0.
R-=1.
print(para)

2. Maaş hesaplaması

Bir çalışanın maaşı içerisinde devlete verilen vergiler ve çeşitli kesintiler bulunmaktadır. Tüm kesinti ve vergilerin de içerisinde bulunduğu tutara brüt maaş, çalışanın eline geçen paraya ise net maaş denmektedir.

Brüt maaş = net maaş + kesintiler + vergiler.

Devlet brüt maaşı belli olan bir personel için net maaş hesaplamasının ne şekilde olacağını belirtmiştir. Çok basit bir örnek olarak,

Kesintiler = brüt maaş * 0.1.

Vergiler = brüt maaş * 0.2.

Şeklinde bir formül ile brüt maaşı belli bir personelin net maaşının ne kadar olduğu hesaplanabilmektedir.

Kesinti ve vergilerin hesaplaması gerçekte karmaşık formüllere ve değişkenlere bağlı olduğu için, net maaşı belli personelin brüt maaşının hesaplanması formüle edilememektedir. Dolayısıyla net maaşı belli personelin brüt maaşını bulabilmek için brütten net maaş hesaplayan formül kullanılmalıdır. Dolayısıyla, “X liralık net maaş için ne kadarlık brüt maaş gerekir?” Sorusunun cevabı için önce tahmini bir brüt tutar kullanılıp bunun neti hesaplanmalı, aradaki farka göre tahminler devam etmelidir.

Elinizde.

Double netmaaşhesapla(double brütmaaş)

Şeklinde, brüt maaş alıp net maaş dönen bir metodunuz olduğunu varsayın.

Bu metodu kullanan ve recursive (özyineli) olan, net maaşı alıp bundan brüt maaşı hesaplayan bir metot yazın.

Not: Ortalama olarak X tutarındaki bir net maaşın 1.5X civarında brüt tutarı olduğunu varsayıp tahminlerinizi ona göre yaptırabilirsiniz.

Ben soru ikiyi anlayamadım, yardımcı olursanız sevinirim. İlk soruyu da cevaplayabilirsiniz isterseniz, farklı çözümler görmem işime yarar.

Umarım bu konu cevap almadan Technopat Sosyal aleminde yok olmaz.

Kardeşim bu sorularla ilgili benimle iletişime geçebilir misin?
 

Geri
Yukarı