Harigami
ログイン
Harigamiは、ログイン不要のコード共有サービスです。コードの投稿後に発行されるURLでコードを共有できます。
PythonやRubyなど一部の言語は、投稿後にオンラインで実行することもできます。
誰でも無料で使えて、広告もありません。コードレビューやスニペットの代わりに使ってみてください。


詳細設定
+
anonymous タイトルなし
Python
#初期化
ans=[[[1,2,3,4,5,6,7,8,9]for i in range(9)]for j in range(9)]
data=[[0 for i in range(9)] for j in range(9)]

#入力
for i in range(9):
    data[i]=list(map(int,input().split()))


#確定したマスを周りのマスの数字から消す関数
def solve(i,j):
    for k in range(9):  # 縦
        if (k == j):
            continue
        if (data[i][j] in ans[i][k]):
            ans[i][k].remove(data[i][j])

    for k in range(9):  # 横
        if (k == i):
            continue
        if (data[i][j] in ans[k][j]):
            ans[k][j].remove(data[i][j])

    for k in range(3):  # 3×3
        for l in range(3):
            if (data[i][j] in ans[i + k - i % 3][j + l - j % 3]):
                if (k == i % 3 and l == j % 3):
                    continue
                ans[i + k - i % 3][j + l - j % 3].remove(data[i][j])
#関数ここまで

#最初から与えられているマスに値を入れる
for i in range(9):
    for j in range(9):
        if (data[i][j] != 0):
            ans[i][j] = [data[i][j], "END"]
        solve(i,j)

#一回の実行で1マスは絶対確定するから81回回せば理論上解ける(はず)
for x in range(81):
    for i in range(9):
        for j in range(9):
            if (len(ans[i][j]) == 1):

                data[i][j]=ans[i][j][0]
                solve(i, j)
                #確定したマスはENDをつけて次回からスキップ
                ans[i][j].append("END")

#ここまでで解き終わる

for i in range(9):
    for j in range(9):
        if("END" in ans[i][j]):
            ans[i][j].remove("END")
#ENDを外す

for i in range(9):
    for j in range(9):
        print(ans[i][j][0],end=" ")
    print()
#結果を出力
  • 0
  • 1
anonymous タイトルなし
Python
#初期化
ans=[[[1,2,3,4,5,6,7,8,9]for i in range(9)]for j in range(9)]
data=[[0 for i in range(9)] for j in range(9)]

#入力
for i in range(9):
    data[i]=list(map(int,input().split()))


#確定したマスを周りのマスの数字から消す関数
def solve(i,j):
    for k in range(9):  # 縦
        if (k == j):
            continue
        if (data[i][j] in ans[i][k]):
            ans[i][k].remove(data[i][j])

    for k in range(9):  # 横
        if (k == i):
            continue
        if (data[i][j] in ans[k][j]):
            ans[k][j].remove(data[i][j])

    for k in range(3):  # 3×3
        for l in range(3):
            if (data[i][j] in ans[i + k - i % 3][j + l - j % 3]):
                if (k == i % 3 and l == j % 3):
                    continue
                ans[i + k - i % 3][j + l - j % 3].remove(data[i][j])
#関数ここまで

#最初から与えられているマスに値を入れる
for i in range(9):
    for j in range(9):
        if (data[i][j] != 0):
            ans[i][j] = [data[i][j], "END"]
        solve(i,j)

#一回の実行で1マスは絶対確定するから81回回せば理論上解ける(はず)
for x in range(81):
    for i in range(9):
        for j in range(9):
            if (len(ans[i][j]) == 1):

                data[i][j]=ans[i][j][0]
                solve(i, j)
                #確定したマスはENDをつけて次回からスキップ
                ans[i][j].append("END")

#ここまでで解き終わる

for i in range(9):
    for j in range(9):
        if("END" in ans[i][j]):
            ans[i][j].remove("END")
#ENDを外す

for i in range(9):
    for j in range(9):
        print(ans[i][j],end=" ")
    print()
#結果を出力
  • 0
  • 0
anonymous タイトルなし
Python
import numpy as np
import time

def input_sudoku():
    L=[]
    for i in range(9):
        L.append([int(x) for x in input().split()])
    print(L)


def check(a):
    for x in range(9):
        for y in range(9):
            i=a[y][x]
            if i not in (row(a,y) | col(a,x) | sq(a,x,y)):
                return x,y
    return True

def row(a,n):
    return set(a[n])

def col(a,n):
    return set(a[:,n])

def sq(a,x,y):
    if y<=2:
        k=a[:3]
        if x<=2:
            k=k[:,:3]
        elif x<=5:
            k=k[:,3:6]
        else:
            k=k[:,6:9]
    elif y<=5:
        k=a[3:6]
        if x<=2:
            k=k[:,:3]
        elif x<=5:
            k=k[:,3:6]
        else:
            k=k[:,6:9]
    else:
        k=a[6:9]
        if x<=2:
            k=k[:,:3]
        elif x<=5:
            k=k[:,3:6]
        else:
            k=k[:,6:9]

    return set(k.flatten())

def print_if_progress(a,mx):#埋けれた数が増えた時のみその時の進捗を出力
    filled=np.count_nonzero(a!=0)
    if filled>mx:
        mx=filled
        print(mx)
        print(a)
    return mx


def dfs(a,mx):#mxの因数は出力用/なくても動く
    if np.min(a)!=0:
        return a
    space=np.argmin(a)#左上から左へ、下へと見ていき、最小値(==空白 : 0以外が最小値の時は、上のif文でreturn)のindex(スカラ)を返す
    x=space%9  #x座標
    y=space//9 #y座標
    for i in range(1,10):
        if i not in (row(a,y) | col(a,x) | sq(a,x,y)):
            a[y][x]=i

            mx=print_if_progress(a,mx)#出力/なくても動く
    
            r=dfs(a,mx)
            if r.shape[0]:
                return r
            
    a[y][x]=0
    
    return np.array([])

def main():
    L=[]
    for i in range(9):
        L.append([int(x) for x in input().split()])
   
    a=np.array(L)

    if a.shape!=(9,9):
        print('入力値エラー:各行半角スペース区切りで9つの数字が入っていることを確認してください')
        return

    start=time.time()
    
    result=dfs(a,0)
        
    print(time.time()-start,"sec")
    print('---------------------')

    if result.shape[0]:
        for row in result:
            print(" ".join([str(x) for x in row.tolist()]))
    else:
        print('有効な解がありません')


if __name__ == '__main__':
    main()
  • 0
  • 0
anonymous 課題
CSS
@charset "utf-8";

*,
*::before,
*::after {
  box-sizing: border-box;
}

/* 基本設定
****************************************/
html {
  font-size: 62.5%;
}

body {
  font-size: 16px;
  line-height: 1.7;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック Medium", "游ゴシック体", "Yu Gothic Medium", YuGothic, "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "MS Pゴシック", "MS PGothic", sans-serif;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
}

iframe {
  vertical-align: middle;
}

/* CLEAR-FIX */
.clearfix {
  zoom: 1;
}

.clearfix:after {
  clear: both;
  content: ".";
  display: block;
  height: 0;
  line-height: 0;
  visibility: hidden;
}


/* 共通
****************************************/

.inner {
  width: 1000px;
  margin: 0 auto;
}

.flex {
  display: flex;
}

.fl_between {
  justify-content: space-between;
}

.sec {
  padding: 70px 0;
}

.sec_icon {
  display: block;
  text-align: center;
  font-size: 30px;
  line-height: 1;
  margin-bottom: 10px;
}

.sec_ttl {
  font-size: 24px;
  text-align: center;
  margin-bottom: 50px;
  letter-spacing: 0.075em;
}

.sec_ttl span {
  font-weight: bold;
}

.sec_ttl span::before,
.sec_ttl span::after {
  content: '';
  display: inline-block;
  width: 40px;
  height: 1px;
  background: #333;
  vertical-align: middle;
}

.sec_ttl span::before {
  margin-right: 50px;
}

.sec_ttl span::after {
  margin-left: 50px;
}


/* ヘッダー
****************************************/
.header {
  width: 100%;
  padding: 5px 0;
  background: rgba(255, 255, 255, 0.8);
  position: fixed;
  top: 0;
  left: 0;
  z-index: 10;
}

.header_inner {
  align-items: flex-end;
}

.header_nav li {
  margin-left: 45px;
}

.header_nav a {
  color: #333;
  text-decoration: none;
}

.header_nav a::after {
  content: '';
  display: block;
  width: 0;
  height: 2px;
  background: #333;
  transition: 0.3s;
}

.header_nav a:hover::after {
  width: 100%;
}


/* メインビジュアル
****************************************/
.mv {
  height: 400px;
  background-image: url(../image/mv.jpg);
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  color: #fff;
  text-align: center;
  padding-top: 150px;
}

.mv_ttl {
  font-size: 50px;
  margin-bottom: 40px;
}

.mv_subttl {
  font-size: 20px;
}



/* プロフィール
****************************************/
.profile_cont {
  width: 700px;
  margin: 0 auto;
  align-items: flex-start;
}

.profile_img {
  width: 280px;
  border-radius: 50%;
  overflow: hidden;
}

.profile_textbox {
  width: 380px;
}

.profile_name {
  font-size: 24px;
  font-weight: bold;
  margin-bottom: 15px;
}

/* スキル
****************************************/

.skill {
  background: url(../image/bg_slill.jpg) center / cover no-repeat;
}

.skill_list li {
  width: 220px;
}

.skill_list figure {
  text-align: center;
  margin-bottom: 50px;
}

.skill_list a {
  color: #0ca8cf;
}

/* 実績
****************************************/

.works_cont {
  width: 300px;
}

.works_cont_ttl {
  background: #0ca8cf;
  color: #fff;
  font-size: 18px;
  text-align: center;
  padding: 10px;
  font-weight: normal;
  margin-bottom: 35px;
  position: relative;
}

.works_cont_ttl::before {
  content: '';
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 14px 14px 0 14px;
  border-color: #0ca8cf transparent transparent transparent;
  position: absolute;
  top: 100%;
  left: 50%;
  margin-left: -14px;
}

.works_cont_comennt {
  font-size: 18px;
  margin: 10px 0 5px;
}

.works_cont_link {
  text-align: right;
}

.works_cont_link a {
  color: #333;
  font-size: 14px;
}


/* お問合せ
****************************************/
.contact {
  background: #dbf6fd;
}

.contact_snslist {
  justify-content: center;
}

.contact_snslist li + li {
  margin-left: 75px;
}

.contact_snslist i {
  font-family: "Font Awesome 5 Brands";
  color: #0a86a6;
  font-size: 72px;
}

.contact_snslist a {
  transition: 0.3s;
}

.contact_snslist a:hover {
  opacity: 0.8;
}

.contact_linkbtn {
  width: 300px;
  margin: 65px auto 0;
}

.contact_linkbtn a {
  display: block;
  text-align: center;
  color: #0ca8cf;
  font-size: 24px;
  font-weight: bold;
  line-height: 80px;
  text-decoration: none;
  border: 2px solid #0ca8cf;
  border-radius: 40px;
  transition: 0.3s;
}


/* フッター
****************************************/
.footer {
  background: #0a86a6;
  color: #fff;
  text-align: center;
  font-size: 20px;
}

.contact_linkbtn a:hover {
  background: #0ca8cf;
  color: #dbf6fd;
}

.footer {
  padding: 25px;
}
  • 0
  • 0
anonymous タイトルなし
HTML
Twitterでは、
#クリエイターズファクトリー
#CF課題
などのハッシュタグをつけて投稿してくれると嬉しいです!
  • 0
  • 1
anonymous タイトルなし
HTML
<p><strong>👇雑談や質問が気軽にできる♪&nbsp;ジャパカジ掲示板</strong></p>
<p>ユーザー同士の交流や雑談、ジャパカジスタッフへの<a href="/forum" target="_blank" title="">お問い合わせ</a>、なんでも大歓迎!</p>
<div><a href="/forum" title=""><img alt="ジャパカジ掲示板はじめました!詳細ページへ" class="full hidden-xs" src="/images/home/images/casino-forum-ad-pc_1502x192.jpg" style="" /><img alt="ジャパカジ掲示板はじめました!詳細ページへ" class="full visible-xs" font-size:10px="" src="/images/home/images/casino-forum-ad-mobile_702x178.jpg" style="" /></a></div>
  • 0
  • 0
anonymous タイトルなし
Python
<p><strong>👇雑談や質問が気軽にできる♪&nbsp;ジャパカジ掲示板</strong></p>
<p>ユーザー同士の交流や雑談、ジャパカジスタッフへの<a href="/forum" target="_blank" title="">お問い合わせ</a>、なんでも大歓迎!</p>
<div><a href="/forum" title=""><img alt="ジャパカジ掲示板はじめました!詳細ページへ" class="full hidden-xs" src="/images/home/images/casino-forum-ad-pc_1502x192.jpg" style="" /><img alt="ジャパカジ掲示板はじめました!詳細ページへ" class="full visible-xs" font-size:10px="" src="/images/home/images/casino-forum-ad-mobile_702x178.jpg" style="" /></a></div>
  • 0
  • 0
anonymous タイトルなし
Python
//@version=3
strategy("Parabolic SAR Strategy", overlay=true)

start = input(0.02)
increment = input(0.02)
maximum = input(0.2)

psar = sar(start, increment, maximum)

if (psar >= high)
    strategy.entry("ParLE", strategy.long, stop=psar, comment="LONG")
else
    strategy.cancel("ParLE")

if (psar <= low)
    strategy.entry("ParSE", strategy.short, stop=psar, comment="SHORT")
else
    strategy.cancel("ParSE")

plot(psar,color=lime,style =circles,linewidth = 2)
  • 0
  • 0
anonymous タイトルなし
Python
//@version=3
strategy("Stochastic Slow Strategy", overlay=false)
length = input(14, minval=1)
OverBought = input(80)
OverSold = input(20)
smoothK = 3
smoothD = 3

k = sma(stoch(close, high, low, length), smoothK)
d = sma(k, smoothD)

if (not na(k) and not na(d))
    if (crossover(k,d) and k < OverSold)
        strategy.entry("StochLE", strategy.long, comment="LONG")
    if (crossunder(k,d) and k > OverBought)
        strategy.entry("StochSE", strategy.short, comment="SHORT")

plot(OverBought,color=red,style=3)
plot(OverSold,color=lime,style=3)
plot(k,color=aqua)
plot(d,color=purple)
  • 0
  • 0
anonymous タイトルなし
Python
//@version=3
strategy("Momentum Strategy", overlay=false)
length = input(12)
price = close

momentum(seria, length) =>
    mom = seria - seria[length]
    mom

mom0 = momentum(price, length)
mom1 = momentum( mom0, 1)

if (mom0 > 0 and mom1 > 0)
    strategy.entry("MomLE", strategy.long, stop=high+syminfo.mintick, comment="LONG")
else
    strategy.cancel("MomLE")

if (mom0 < 0 and mom1 < 0)
    strategy.entry("MomSE", strategy.short, stop=low-syminfo.mintick, comment="SHORT")
else
    strategy.cancel("MomSE")

plot(mom0,color=lime)
plot(mom1,color=red)
hline(0)
  • 0
  • 0