36 lines
1.1 KiB
BQN
36 lines
1.1 KiB
BQN
%DEF var V←•internal.Variation ⋄ LV←•internal.ListVariations ⋄ CLR←•internal.ClearRefs
|
||
%DEF tvar %USE var ⋄ _tvar ← {F _𝕣 x: (CLR@) ⊢ {F 𝕩 V x}¨ LV 𝕩; w F _𝕣 x: (CLR@) ⊢ (LV 𝕨) {(𝕨 V w) F 𝕩 V x}⌜ LV 𝕩}
|
||
%DEF eqvar %USE tvar ⋄ _eqvar ← {r ← 𝕨 𝔽 _tvar 𝕩 ⋄ !∘≡⟜(⊑r)¨ r ⋄ ⊑r}
|
||
|
||
(
|
||
%USE eqvar
|
||
LV ↩ ""⊸LV
|
||
Test ← { 𝕊:
|
||
x ← (2•rand.Range 50)•rand.Range 100
|
||
w ← {0: ↕0; (1+•rand.Range 50) •rand.Range 𝕩} 1⊑≢x
|
||
w {𝕨⊸⊏˘ 𝕩}_eqvar x
|
||
}
|
||
|
||
Test¨ ↕1000
|
||
)
|
||
|
||
(
|
||
Test ← {𝕊 gen:
|
||
{ 𝕊 cam:
|
||
{
|
||
i ← •rand.Range∘3◶⟨⊢, ¯1⊸-, {𝕩 - (1+2×𝕩) × 2•rand.Range˜≠𝕩}⟩ 𝕨 •rand.Range 𝕩
|
||
! (i⊸⊏˘ ≡ i⊸⊏○•internal.Keep˘) Gen cam‿𝕩
|
||
}⌜˜ 1↓⍷(↕20)∾⌊(√2)⋆↕16
|
||
}¨ 1‿6‿100
|
||
}
|
||
|
||
Test {{0 + 𝕩 •rand.Range 100}}
|
||
Test {{0 + 𝕩 •rand.Range 1000}}
|
||
Test {{0 + 𝕩 •rand.Range 1e9}}
|
||
Test {{0 + 𝕩 •rand.Range 0}}
|
||
|
||
Test {{@ + 𝕩 •rand.Range 100}}
|
||
Test {{@ + 𝕩 •rand.Range 1000}}
|
||
Test {{@ + 𝕩 •rand.Range 1114111}}
|
||
)
|